2010-01-05 05:33:20

by David John

[permalink] [raw]
Subject: [PATCH] BUG: Fix smp_call_function_any to pass the node value to cpumask_of_node.

The change in acpi_cpufreq to use smp_call_function_any causes an
OOPS when it is called since the function erroneously passes the
cpu id to cpumask_of_node rather than the node that the cpu
is on. Fix this.

Signed-off-by: David John <[email protected]>

diff --git a/kernel/smp.c b/kernel/smp.c
index de735a6..f104084 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -347,7 +347,7 @@ int smp_call_function_any(const struct cpumask *mask,
goto call;

/* Try for same node. */
- nodemask = cpumask_of_node(cpu);
+ nodemask = cpumask_of_node(cpu_to_node(cpu));
for (cpu = cpumask_first_and(nodemask, mask); cpu < nr_cpu_ids;
cpu = cpumask_next_and(cpu, nodemask, mask)) {
if (cpu_online(cpu))