mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
smp: Remove preempt_disable() from smp_call_function()
smp_call_function_many_cond() handles the preemption and CPU pinning requirements internally. smp_call_function() only forwards the request to that helper for cpu_online_mask and does not access CPU-local state on its own. Remove the outer preempt_disable() and preempt_enable() pair from smp_call_function(). Signed-off-by: Chuyi Zhou <zhouchuyi@bytedance.com> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Tested-by: Paul E. McKenney <paulmck@kernel.org> Reviewed-by: Muchun Song <muchun.song@linux.dev> Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Link: https://patch.msgid.link/20260709122933.4021501-8-zhouchuyi@bytedance.com
This commit is contained in:
parent
8df8a60283
commit
66344732b0
13
kernel/smp.c
13
kernel/smp.c
|
|
@ -1007,10 +1007,10 @@ EXPORT_SYMBOL(smp_call_function_many);
|
|||
|
||||
/**
|
||||
* smp_call_function() - Run a function on all other CPUs.
|
||||
* @func: The function to run. This must be fast and non-blocking.
|
||||
* @info: An arbitrary pointer to pass to the function.
|
||||
* @wait: If true, wait (atomically) until function has completed
|
||||
* on other CPUs.
|
||||
* @func: The function to run. This must be fast and non-blocking.
|
||||
* @info: An arbitrary pointer to pass to the function.
|
||||
* @wait: If true, wait (atomically) until function has completed
|
||||
* on other CPUs.
|
||||
*
|
||||
* If @wait is true, then returns once @func has returned; otherwise
|
||||
* it returns just before the target cpu calls @func.
|
||||
|
|
@ -1020,9 +1020,8 @@ EXPORT_SYMBOL(smp_call_function_many);
|
|||
*/
|
||||
void smp_call_function(smp_call_func_t func, void *info, int wait)
|
||||
{
|
||||
preempt_disable();
|
||||
smp_call_function_many(cpu_online_mask, func, info, wait);
|
||||
preempt_enable();
|
||||
smp_call_function_many_cond(cpu_online_mask, func, info,
|
||||
wait ? SCF_WAIT : 0, NULL);
|
||||
}
|
||||
EXPORT_SYMBOL(smp_call_function);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user