On Mon, 11 Jun 2012, Ming Lei wrote: > @@ -1820,6 +1833,18 @@ void device_shutdown(void) > list_del_init(&dev->kobj.entry); > spin_unlock(&devices_kset->list_lock); > > + /* hold lock to avoid race with .probe/.release */ > + if (dev->parent && !__try_lock(dev->parent)) > + nonlocked = 2; > + else if (!__try_lock(dev)) > + nonlocked = 1; > + else > + nonlocked = 0; > + > + if (nonlocked) > + dev_err(dev, "can't hold %slock for shutdown\n", > + nonlocked == 1 ? "" : "parent "); Even if the parent can't be locked, you should still try to lock the device. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html