From: "David Brownell" <[EMAIL PROTECTED]> > Stuart MacDonald wrote: > > The problem boils down to the fact that I can't use urb_list to keep a > > list of urbs for later unlinking. I'm thinking the best solution is to > > add a second list_head to struct urb. > > You've already got urb->context for per-request data. The data it points > to would seem to be a more natural place to keep such such data.
urb->context for most (all?) of the usb serial drivers points at the usb_serial_port struct for the port the urb is "running on". That port has a private area, to which I've added a list of pre-allocated urbs for reading and writing; the free list uses the urb's list_head. For 1234567890123456789012345678901234567890123456789012345678901234567890 the submitted urbs, I have to build my own list, which is a PITA. port_private { list_head free_urbs; /* uses urb's urb_list */ list_head submitted_urbs; /* for unlinking later */ } struct my_submit_list { list_head list; struct urb *urb; } > I'd rather see 'struct urb' start to shrink, not grow! Which is why I asked instead of sending in a patch. :-) ..Stu ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel