Re: [PATCH] Properly unregister reboot notifier in case of failure in ehci hcd

From: Aleksey Gorelov
Date: Fri Jul 14 2006 - 12:44:45 EST


--- Andrew Morton <akpm@xxxxxxxx> wrote:

> On Tue, 11 Jul 2006 23:38:41 -0700 (PDT)
> Aleksey Gorelov <dared1st@xxxxxxxxx> wrote:
>
> > If some problem occurs during ehci startup, for instance, request_irq fails, echi hcd driver
> > tries it best to cleanup, but fails to unregister reboot notifier, which in turn leads to
> crash on
> > reboot/poweroff. Below is the patch against current git to fix this.
> > I did not check if the same problem existed for uhci/ohci host drivers.
>
> This patch causes hangs at reboot/shutdown/suspend time. See
> http://www.zip.com.au/~akpm/linux/patches/stuff/dsc03597.jpg
>
Oops, I did not test it with suspend/resume stuff, sorry. The problem is that ehci_run is called
from resume without its counterpart ehci_stop in suspend, so notifier ends up registered twice.

David, Alan,

Do you think it is Ok to unregister reboot notifier in ehci_run before registering one to make
sure there is no 'double registering' of notifier, or is it better to move register/unregister
reboot notifier from ehci_run/ehci_stop completely to some other place ?

Aleks.

-
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/