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

Reply via email to