Am Dienstag, den 13.08.2019, 12:26 +0800 schrieb Hillf Danton:
> [respin with the mess in Cc list cleaned up]

> Followup of commit e3e14de50dff ("HID: fix start/stop cycle in usbhid driver")
> 
> --- a/drivers/hid/usbhid/hid-core.c
> +++ b/drivers/hid/usbhid/hid-core.c
> @@ -1214,6 +1214,8 @@ static void usbhid_stop(struct hid_devic
>  
>       hid->claimed = 0;
>  
> +     if (!usbhid->urbin) /* freeing buffers only once */
> +             return;
>       usb_free_urb(usbhid->urbin);
>       usb_free_urb(usbhid->urbctrl);
>       usb_free_urb(usbhid->urbout);

This looks rather suspicious. Why is stop() called multiple times?
Do we have a refcounting issue? If not, what controls locking?

        Regards
                Oliver

Reply via email to