Re: [PATCH] ARM: machine_power_off should not return

Ezequiel Garcia
2014-03-26T10:12:52Z

Russell,

Thanks for the reply!

On Mar 26, Russell King - ARM Linux wrote:
> On Tue, Mar 25, 2014 at 07:45:55PM -0300, Ezequiel Garcia wrote:
> >
> > Without this patch we got the heartbeat's reboot_notifier called twice while
> > testing the recent hibernation patches, which was unexpected and produced a
> > kernel panic: https://lkml.org/lkml/2014/3/19/363
>
> I don't see why we should make this change. kernel/reboot.c handles
> this function returning, so other places should do too.
>
> Even on x86, this function can return:
>
[..]
>
> Therefore, I'd say... it's a bug in the hibernation code - or we probably
> have many buggy architectures. I'd suggest fixing the hibernation code
> rather than stuffing some workaround like an endless loop into every
> architecture.
>

Which is exactly what Sebastian did first:

https://lkml.org/lkml/2014/3/20/605

But Pavel asked to fix ARM's machine_power_off instead.

Also, looking at the other architectures, it seems this API is not well
defined: some of them have an infinite loop, some don't. So it's hard to
say the function is supposed to return or not.
--
Ezequiel García, Free Electrons
Embedded Linux, Kernel and Android Engineering