Re: What's the difference between async and sync unlink?

"jidong xiao" <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
On 7/11/07, Oliver Neukum <[email protected]> wrote:
> Am Mittwoch, 11. Juli 2007 schrieb jidong xiao:
> > I see there are two routines, usb_unlink_urb and usb_kill_urb,the
> > latter one should be used for sync unlinking,this means it can go to
> > sleep,it won't return until the completion handler have finished.And
> > the former one could not go to sleep.But what's difference between
> > sync and async,I mean,why do we need such two kinds of mechanism to
> > cancel a transfer request?
>
> Under some conditions, eg. network drivers' and the storage driver's
> timeout handling, drivers cannot sleep. They have to stop transfers
> asynchronously.

Ok,let's talk about the timeout handling routine,we defined a
timeout_handler in drivers/usb/storage/transport.c,inside that
function,we will call usb_unlink_urb,why cannot we sleep?what impact
if the driver go to sleep here?

/* This is the timeout handler which will cancel an URB when its timeout
 * expires.
 */
static void timeout_handler(unsigned long us_)
{
	struct us_data *us = (struct us_data *) us_;

	if (test_and_clear_bit(US_FLIDX_URB_ACTIVE, &us->flags)) {
		US_DEBUGP("Timeout -- cancelling URB\n");
		usb_unlink_urb(us->current_urb);
	}
}

Regards
Jason

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.