diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2024-03-04 13:12:22 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2024-03-04 14:01:54 +0300 |
commit | 712610725c48c829e42bebfc9908cd92468e2731 (patch) | |
tree | 48ab84808ef0195a784ce0cdb94b8f0b9bfcf41c /include/linux/smp.h | |
parent | 5323922f50ecdf9d10cdd2fabd06507e5b4f3feb (diff) | |
download | linux-712610725c48c829e42bebfc9908cd92468e2731.tar.xz |
smp: Consolidate smp_prepare_boot_cpu()
There is no point in having seven architectures implementing the same empty
stub.
Provide a weak function in the init code and remove the stubs.
This also allows to utilize the function on UP which is required to
sanitize the per CPU handling on X86 UP.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20240304005104.567671691@linutronix.de
Diffstat (limited to 'include/linux/smp.h')
-rw-r--r-- | include/linux/smp.h | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/include/linux/smp.h b/include/linux/smp.h index e87520dc2959..b84592950149 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h @@ -105,6 +105,12 @@ static inline void on_each_cpu_cond(smp_cond_func_t cond_func, on_each_cpu_cond_mask(cond_func, func, info, wait, cpu_online_mask); } +/* + * Architecture specific boot CPU setup. Defined as empty weak function in + * init/main.c. Architectures can override it. + */ +void smp_prepare_boot_cpu(void); + #ifdef CONFIG_SMP #include <linux/preempt.h> @@ -171,12 +177,6 @@ void generic_smp_call_function_single_interrupt(void); #define generic_smp_call_function_interrupt \ generic_smp_call_function_single_interrupt -/* - * Mark the boot cpu "online" so that it can call console drivers in - * printk() and can access its per-cpu storage. - */ -void smp_prepare_boot_cpu(void); - extern unsigned int setup_max_cpus; extern void __init setup_nr_cpu_ids(void); extern void __init smp_init(void); @@ -203,7 +203,6 @@ static inline void up_smp_call_function(smp_call_func_t func, void *info) (up_smp_call_function(func, info)) static inline void smp_send_reschedule(int cpu) { } -#define smp_prepare_boot_cpu() do {} while (0) #define smp_call_function_many(mask, func, info, wait) \ (up_smp_call_function(func, info)) static inline void call_function_init(void) { } |