[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 2/8] x86/altcall: Rename alternative_branches() to boot_apply_alt_calls()
The alternatives APIs are not great; rename alternative_branches() to be more precise. Centralise the declaration in xen/alternative-call.h, in the expectation that x86 won't be the only user in the long term. No functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- xen/arch/x86/alternative.c | 2 +- xen/arch/x86/include/asm/alternative.h | 1 - xen/arch/x86/setup.c | 3 ++- xen/include/xen/alternative-call.h | 10 +++++++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c index 1ba35cb9ede9..d1a3b7ea7ca6 100644 --- a/xen/arch/x86/alternative.c +++ b/xen/arch/x86/alternative.c @@ -493,7 +493,7 @@ void __init alternative_instructions(void) _alternative_instructions(false); } -void __init alternative_branches(void) +void __init boot_apply_alt_calls(void) { local_irq_disable(); _alternative_instructions(true); diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h index 2d2ace97f794..29c3d724b07f 100644 --- a/xen/arch/x86/include/asm/alternative.h +++ b/xen/arch/x86/include/asm/alternative.h @@ -29,7 +29,6 @@ extern void add_nops(void *insns, unsigned int len); /* Similar to alternative_instructions except it can be run with IRQs enabled. */ extern int apply_alternatives(struct alt_instr *start, struct alt_instr *end); extern void alternative_instructions(void); -extern void alternative_branches(void); #define alt_orig_len "(.LXEN%=_orig_e - .LXEN%=_orig_s)" #define alt_pad_len "(.LXEN%=_orig_p - .LXEN%=_orig_e)" diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index cf1ea040dd90..25189541244d 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -1,4 +1,5 @@ #include <xen/acpi.h> +#include <xen/alternative-call.h> #include <xen/bitops.h> #include <xen/console.h> #include <xen/cpu.h> @@ -2082,7 +2083,7 @@ void asmlinkage __init noreturn __start_xen(void) do_presmp_initcalls(); - alternative_branches(); + boot_apply_alt_calls(); /* * NB: when running as a PV shim VCPUOP_up/down is wired to the shim diff --git a/xen/include/xen/alternative-call.h b/xen/include/xen/alternative-call.h index 39339c3f0f76..3c855bfa44f5 100644 --- a/xen/include/xen/alternative-call.h +++ b/xen/include/xen/alternative-call.h @@ -17,6 +17,8 @@ * generation requirements are to emit a function pointer call at build * time, and stash enough metadata to simplify the call at boot once the * implementation has been resolved. + * - Implement boot_apply_alt_calls() to convert the function pointer calls + * into direct calls on boot. * - Select ALTERNATIVE_CALL in Kconfig. * * To use: @@ -57,7 +59,13 @@ # define __alt_call_maybe_initdata __initdata #endif -#else +/* + * Devirtualise the alternative_{,v}call()'s on boot. Convert still-NULL + * function pointers into traps. + */ +void boot_apply_alt_calls(void); + +#else /* CONFIG_ALTERNATIVE_CALL */ #define alternative_call(func, args...) (func)(args) #define alternative_vcall(func, args...) (func)(args) -- 2.39.5
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |