i386 machine_restart unsafe in interrupt context

From: Castor Fu (castor@3pardata.com)
Date: Mon Dec 17 2001 - 12:48:53 EST


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/



This archive was generated by hypermail 2b29 : Sun Dec 23 2001 - 21:00:13 EST