Re: Race condition between driver_probe_device and device_shutdownâ

From: Ming Lei
Date: Mon May 21 2012 - 20:35:23 EST


On Tue, May 22, 2012 at 2:29 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Mon, 21 May 2012, Ming Lei wrote:
>> Another candidate fix is to register a reboot notifier in driver core to prevent
>> driver from being bound or unbound from start of reboot/shutdown, but looks
>> not easy as the way of holding device locks.
>
> I'd guess it was done this way so that the shutdown task wouldn't have
> to wait for a buggy driver that didn't want to release the device lock
> (or that crashed while holding the lock).

Maybe, so I understand you agree on adding the device lock as did
in the patch, don't I?

Also we can add below line before acquiring device lock to help
toubleshoot buggy driver.

dev_dbg(dev, "acquiring device lock for shutdown\n");

>
> It's not clear that the reboot notifier approach would work.  What
> about probes that had already started when notifier was called?

Looks holding device lock is still needed in the notifier callback for
handling the case if reboot notifier approach is taken.

IMO, the way of holding device lock is better than reboot notifier approach.

Thanks,
--
Ming Lei
--
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/