[patch 02/54] Ignore bogus ACPI info for offline CPUs

2007-06-08 Thread Chris Wright
-stable review patch.  If anyone has any objections, please let us know.
-

From: Thomas Gleixner <[EMAIL PROTECTED]>

Booting a SMP kernel with maxcpus=1 on a SMP system leads to a hard
hang, because ACPI ignores the maxcpus setting and sends timer broadcast
info for the offline CPUs. This results in a stuck for ever call to
smp_call_function_single() on an offline CPU.

Ignore the bogus information and print a kernel error to remind ACPI
folks to fix it.

Affects 2.6.21 / 2.6.22-rc

Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
Signed-off-by: Chris Wright <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>

---
 kernel/time/tick-broadcast.c |   17 -
 1 file changed, 12 insertions(+), 5 deletions(-)

--- linux-2.6.21.4.orig/kernel/time/tick-broadcast.c
+++ linux-2.6.21.4/kernel/time/tick-broadcast.c
@@ -243,11 +243,18 @@ void tick_broadcast_on_off(unsigned long
 {
int cpu = get_cpu();
 
-   if (cpu == *oncpu)
-   tick_do_broadcast_on_off();
-   else
-   smp_call_function_single(*oncpu, tick_do_broadcast_on_off,
-, 1, 1);
+   if (!cpu_isset(*oncpu, cpu_online_map)) {
+   printk(KERN_ERR "tick-braodcast: ignoring broadcast for "
+  "offline CPU #%d\n", *oncpu);
+   } else {
+
+   if (cpu == *oncpu)
+   tick_do_broadcast_on_off();
+   else
+   smp_call_function_single(*oncpu,
+tick_do_broadcast_on_off,
+, 1, 1);
+   }
put_cpu();
 }
 

-- 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[patch 02/54] Ignore bogus ACPI info for offline CPUs

2007-06-08 Thread Chris Wright
-stable review patch.  If anyone has any objections, please let us know.
-

From: Thomas Gleixner [EMAIL PROTECTED]

Booting a SMP kernel with maxcpus=1 on a SMP system leads to a hard
hang, because ACPI ignores the maxcpus setting and sends timer broadcast
info for the offline CPUs. This results in a stuck for ever call to
smp_call_function_single() on an offline CPU.

Ignore the bogus information and print a kernel error to remind ACPI
folks to fix it.

Affects 2.6.21 / 2.6.22-rc

Signed-off-by: Thomas Gleixner [EMAIL PROTECTED]
Signed-off-by: Chris Wright [EMAIL PROTECTED]
Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---
 kernel/time/tick-broadcast.c |   17 -
 1 file changed, 12 insertions(+), 5 deletions(-)

--- linux-2.6.21.4.orig/kernel/time/tick-broadcast.c
+++ linux-2.6.21.4/kernel/time/tick-broadcast.c
@@ -243,11 +243,18 @@ void tick_broadcast_on_off(unsigned long
 {
int cpu = get_cpu();
 
-   if (cpu == *oncpu)
-   tick_do_broadcast_on_off(reason);
-   else
-   smp_call_function_single(*oncpu, tick_do_broadcast_on_off,
-reason, 1, 1);
+   if (!cpu_isset(*oncpu, cpu_online_map)) {
+   printk(KERN_ERR tick-braodcast: ignoring broadcast for 
+  offline CPU #%d\n, *oncpu);
+   } else {
+
+   if (cpu == *oncpu)
+   tick_do_broadcast_on_off(reason);
+   else
+   smp_call_function_single(*oncpu,
+tick_do_broadcast_on_off,
+reason, 1, 1);
+   }
put_cpu();
 }
 

-- 
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/