On Thu, Mar 15, 2012 at 12:04 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > Is there any way to reproduce this? > > It seems to be saying that usb_stor_pre_reset() was called twice > without usb_stor_post_reset() being called in between, because the > post_reset routine is where the lock gets released. I don't know of > any way that could happen. Looks it is a device with multiple usb mass interfaces, care to post the 'lsusb -v' of the device? If so, the following patch should remove the warning. diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c index c18538e..1c209a0 100644 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c @@ -194,11 +194,13 @@ EXPORT_SYMBOL_GPL(usb_stor_reset_resume); int usb_stor_pre_reset(struct usb_interface *iface) { struct us_data *us = usb_get_intfdata(iface); + int if_num = (int)(iface - + us->pusb_dev->actconfig->interface[0]); US_DEBUGP("%s\n", __func__); /* Make sure no command runs during the reset */ - mutex_lock(&us->dev_mutex); + mutex_lock_nested(&us->dev_mutex, if_num); return 0; } EXPORT_SYMBOL_GPL(usb_stor_pre_reset); Thanks, -- Ming Lei -- 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