restart callback not supposed to sleep?

Russell King - ARM Linux linux at
Mon Aug 20 04:57:20 EDT 2012

On Mon, Aug 20, 2012 at 10:24:23AM +0200, Uwe Kleine-König wrote:
> while triggering a reboot via sysrq on an ARM machine I saw a "BUG:
> sleeping function called from invalid context" message (details below).
> The reason is that the sysrq handler is calling the restart hook in irq
> context.

Correct - it's been the case for years that the restart hook is called
from atomic contexts (it's not only sysrq, but also softdog as well which
does this, as well as any system panic with panic timeout/panic-on-oops

You need to fix your platform restart hook.

More information about the linux-arm-kernel mailing list