Now that I mentioned that inserting usb-storage hangs forever
and then causes a SCSI oops, the question arises how the hang
is caused. It turns out to be a semaphore deadlock.

What happens is that base/bus.c:bus_add_driver() downs
        down_write(&bus->subsys.rwsem);
and then later usb/core/hub.c:usb_reset_device() downs
        down_read(&gdev->bus->subsys.rwsem);

This is the same semaphore, and we have a deadlock.

Andries


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to