Commit 38b9aeb3 authored by Dave Martin's avatar Dave Martin Committed by Will Deacon

arm64: Port deprecated instruction emulation to new sysctl interface

Currently, armv8_deprected.c takes charge of the "abi" sysctl
directory, which makes life difficult for other code that wants to
register sysctls in the same directory.

There is a "new" [1] sysctl registration interface that removes the
need to define ctl_tables for parent directories explicitly, which
is ideal here.

This patch ports register_insn_emulation_sysctl() over to the
register_sysctl() interface and removes the redundant ctl_table for
"abi".
Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>

[1] fea478d4 (sysctl: Add register_sysctl for normal sysctl
users)
The commit message notes an intent to port users of the
pre-existing interfaces over to register_sysctl(), though the
number of users of the new interface currently appears negligible.
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent b472db6c
...@@ -228,15 +228,7 @@ static int emulation_proc_handler(struct ctl_table *table, int write, ...@@ -228,15 +228,7 @@ static int emulation_proc_handler(struct ctl_table *table, int write,
return ret; return ret;
} }
static struct ctl_table ctl_abi[] = { static void __init register_insn_emulation_sysctl(void)
{
.procname = "abi",
.mode = 0555,
},
{ }
};
static void __init register_insn_emulation_sysctl(struct ctl_table *table)
{ {
unsigned long flags; unsigned long flags;
int i = 0; int i = 0;
...@@ -262,8 +254,7 @@ static void __init register_insn_emulation_sysctl(struct ctl_table *table) ...@@ -262,8 +254,7 @@ static void __init register_insn_emulation_sysctl(struct ctl_table *table)
} }
raw_spin_unlock_irqrestore(&insn_emulation_lock, flags); raw_spin_unlock_irqrestore(&insn_emulation_lock, flags);
table->child = insns_sysctl; register_sysctl("abi", insns_sysctl);
register_sysctl_table(table);
} }
/* /*
...@@ -644,7 +635,7 @@ static int __init armv8_deprecated_init(void) ...@@ -644,7 +635,7 @@ static int __init armv8_deprecated_init(void)
cpuhp_setup_state_nocalls(CPUHP_AP_ARM64_ISNDEP_STARTING, cpuhp_setup_state_nocalls(CPUHP_AP_ARM64_ISNDEP_STARTING,
"arm64/isndep:starting", "arm64/isndep:starting",
run_all_insn_set_hw_mode, NULL); run_all_insn_set_hw_mode, NULL);
register_insn_emulation_sysctl(ctl_abi); register_insn_emulation_sysctl();
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment