Hi,
[..]
> + atomic_t interrupt_in_running;
> + atomic_t interrupt_in_done;
what use are these atomic declarations?
[..]
> @@ -628,22 +740,23 @@ static void tower_interrupt_out_callback
> {
> struct lego_usb_tower *dev = (struct lego_usb_tower *)urb->context;
>
> - dbg(4," %s : enter, status %d", __func__, urb->status);
> - lego_usb_tower_debug_data(5,__func__, urb->actual_length,
> urb->transfer_buffer);
> + dbg(4, "%s: enter, status %d", __FUNCTION__, urb->status);
> + lego_usb_tower_debug_data(5, __FUNCTION__, urb->actual_length,
> urb->transfer_buffer);
>
> if (urb->status != 0) {
> - if ((urb->status != -ENOENT) &&
> + if ((urb->status != -ENOENT) &&
You should also check for ESHUTDOWN.
[..]
> + dev->read_buffer_lock = SPIN_LOCK_UNLOCKED;
Please use the macro.
Regards
Oliver
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel