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

Reply via email to