Hi,

On 7/17/07, Soeren Sonnenburg <[EMAIL PROTECTED]> wrote:
>
>  err_free_buffer:
> @@ -656,6 +699,7 @@ static void atp_disconnect(struct usb_interface *iface)
>
>        usb_set_intfdata(iface, NULL);
>        if (dev) {
> +               cancel_work_sync(&dev->work);
>                usb_kill_urb(dev->urb);
>                input_unregister_device(dev->input);
>                usb_buffer_free(dev->udev, dev->datalen,
>

This should go into atp_close() and I think you need to do
cancel_work_sync after calling usb_kill_urb() otherwise you risk it
being submitted while you gettingto kill the urb.

How many boxes did you try this patch on?

-- 
Dmitry

-------------------------------------------------------------------------
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/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to