From: Shrikanth Hegde Date: Mon, 23 Mar 2026 19:36:29 +0000 (+0530) Subject: smp: Get this_cpu once in smp_call_function X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ec39780d6a9e05e7e427008603b40efef515b775;p=thirdparty%2Fkernel%2Flinux.git smp: Get this_cpu once in smp_call_function smp_call_function_single() and smp_call_function_many_cond() disable preemption and cache the CPU number via get_cpu(). Use this cached value throughout the function instead of invoking smp_processor_id() again. [ tglx: Make the copy&pasta'ed change log match the patch ] Signed-off-by: Shrikanth Hegde Signed-off-by: Thomas Gleixner Reviewed-by: Mukesh Kumar Chaurasiya (IBM) Link: https://patch.msgid.link/20260323193630.640311-4-sshegde@linux.ibm.com --- diff --git a/kernel/smp.c b/kernel/smp.c index b179424f60401..bdbf145737baa 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -678,7 +678,7 @@ int smp_call_function_single(int cpu, smp_call_func_t func, void *info, csd->func = func; csd->info = info; #ifdef CONFIG_CSD_LOCK_WAIT_DEBUG - csd->node.src = smp_processor_id(); + csd->node.src = this_cpu; csd->node.dst = cpu; #endif @@ -833,7 +833,7 @@ static void smp_call_function_many_cond(const struct cpumask *mask, csd->func = func; csd->info = info; #ifdef CONFIG_CSD_LOCK_WAIT_DEBUG - csd->node.src = smp_processor_id(); + csd->node.src = this_cpu; csd->node.dst = cpu; #endif trace_csd_queue_cpu(cpu, _RET_IP_, func, csd);