i386 machine_restart unsafe in interrupt context

Castor Fu (castor@3pardata.com)
Mon, 17 Dec 2001 09:48:53 -0800 (PST)


I have a problem where systems fail to reboot on panic(). I've resolved
it by changing smp_send_stop() to use an NMI (like the KDB patch does to
manage communication).

The source of the problem is that the panic path has the following:

panic()
machine_restart()
machine_real_restart()
smp_send_stop()
smp_call_function()

and smp_call_function() is not safe in an interrupt context.

I imagine people might want to handle this differently, but I'd be
happy to diffs if there's interest. It may be that there are enough
cases like this that smp_call_function might want a version that
uses an NMI. . .

-Castor Fu
castor@3par.com

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