[lkml]   [2003]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: orinoco_usb Request For Comments
On Thu, Jun 26, 2003 at 11:41:18PM +0200, Oliver Neukum wrote:
> > Please comment, how much of that or what else needs to be done to get
> > it in the kernel?
> if(dev->read.urb->status == -EINPROGRESS){
> warn("%s: Unlinking pending IN urb", __FUNCTION__);
> retval = bridge_remove_in_urb(dev);
> if(retval){
> dbg("retval %d status %d", retval,
> dev->read.urb->status);
> }
> }
> Unlink unconditionally.

OK, done.

> /* We don't like racing :) */
> ctx->outurb->transfer_flags &= ~URB_ASYNC_UNLINK;
> usb_unlink_urb(ctx->outurb);
> del_timer_sync(&ctx->timer);
> But neither do we like sleeping in interrupt. You can't simply unset the flag
> if somebody else may be needing it.

mmm, but the problem is that the interrupt handler can rearm the timer.
And it can also complete the request_context freeing the memory, and we
don't want to free the memory twice or access freed memory.

Suggestions on how to get this right would be greatly appreciated.

Maybe more paranoid refcounting?

> More when I am rested :-)

Thanks a lot, I was really missing some peer review.


--- Manuel Estrada Sainz <>
------------------------ <> -------------------
Let us have the serenity to accept the things we cannot change, courage to
change the things we can, and wisdom to know the difference.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:36    [W:0.091 / U:1.872 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site