2. (Found while testing your changes to usb_reset_device) Although usbcore acquires usbdev->serialize before probing newly-attached devices, it doesn't acquire the semaphore before probing newly-registered drivers! I don't know how that should be fixed.
Erm, I think it's important to be consistent...
You don't seem to realize the scope of this problem. Of course we need to hold the semaphore. The problem is, for which device? When a driver is registered, the driver model core automatically goes through all the devices on the bus and probes any that match the driver and don't already have their own driver.
Now I see what you meant. Yes, that's messy -- driver model core doesn't seem to have a way for bus-specific additional constraints to be applied when it does probe() ... unless you count the bus match() method, which could grab the lock but then there'd be no way to release it.
Yeech. I don't know how that should be fixed either, but I suspect it's another "not just inside USB" fix.
- Dave
-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel