Hi All, I am having the following problem when there is a problem in one of transfers(urbs), like short read complete or endpoint halted.
Okay I will explain my situation. Suppose I have multiple mass storage urbs from usb_sg_wait ( in the drivers/core/message.c), lets say I have 16 URBs,all are linked to be scheduled to the endpoint. I got the error on 2nd URB and completed the URB with status -EREMOTEIO, then mass_storage_driver tries to remove the remaing 14 uncompleted URBs from completion routine sg_complete( again in drivers/usb/core/message.c), I am supposed to complete the urb thats being unlinked then when I complete the urb it calls the same completion routine sg_complete, and this one is protected by spin_lock(&io->lock), so I get this problem, whenever I try to complete the urbs being removed, also the same problem happens when transfers are being cancelled from usb_sg_cancel( again in usb/core/message.c), the same spin_lock problem will happen if I call urb->complete routine for the urb being removed. Can somebody help me to solve this problem, also I want to take unblocked urbs not one at a time ? Thanks and really appreciate the suggestions. KP ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
