[patch 02/54] Ignore bogus ACPI info for offline CPUs
-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
-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/