[PATCH][BUG] Badness in smp_call_function at arch/i386/kernel/smp.c:552

From: Zwane Mwaikambo
Date: Thu Dec 02 2004 - 23:59:59 EST


On Thu, 2 Dec 2004, Pedro Larroy wrote:

> This happens when triggering sysrq-B to reboot box:
>
> SysRq : Emergency Sync
> Emergency Sync complete
> SysRq : Resetting
> Badness in smp_call_function at arch/i386/kernel/smp.c:552
> [<c011192e>] smp_call_function+0xfe/0x110
> [<c011ccf4>] call_console_drivers+0x74/0x100
> [<c011d0cf>] release_console_sem+0x7f/0xc0
> [<c011198b>] smp_send_stop+0x1b/0x30
> [<c0111204>] machine_shutdown+0x34/0x60
> [<c011ce97>] printk+0x17/0x20
> [<c021a1fc>] __handle_sysrq+0x7c/0x110

ChangeSet 1.2026.75.111 2004/11/07 20:06:32 jbaron@xxxxxxxxxx
[PATCH] fix alt-sysrq deadlock

__handle_sysrq was modified to do a spin_lock_irqsave so we were
entering smp_send_stop with interrupts. So enable interrupts in
machine_shutdown().

Signed-off-by: Zwane Mwaikambo <zwane@xxxxxxxxxxxxxx>

Index: linux-2.6.10-rc2-mm4/arch/i386/kernel/reboot.c
===================================================================
RCS file: /home/cvsroot/linux-2.6.10-rc2-mm4/arch/i386/kernel/reboot.c,v
retrieving revision 1.1.1.1
diff -u -p -B -r1.1.1.1 reboot.c
--- linux-2.6.10-rc2-mm4/arch/i386/kernel/reboot.c 30 Nov 2004 18:52:19 -0000 1.1.1.1
+++ linux-2.6.10-rc2-mm4/arch/i386/kernel/reboot.c 3 Dec 2004 04:28:28 -0000
@@ -274,6 +274,8 @@ void machine_shutdown(void)
#ifdef CONFIG_SMP
int reboot_cpu_id;

+ local_irq_enable();
+
/* The boot cpu is always logical cpu 0 */
reboot_cpu_id = 0;

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