--- x/drivers/hid/usbhid/hid-core.c +++ y/drivers/hid/usbhid/hid-core.c @@ -280,7 +280,7 @@ static void hid_irq_in(struct urb *urb) case 0: /* success */ usbhid->retry_delay = 0; if (!test_bit(HID_OPENED, &usbhid->iofl)) - break; + return; usbhid_mark_busy(usbhid); if (!test_bit(HID_RESUME_RUNNING, &usbhid->iofl)) { hid_input_report(urb->context, HID_INPUT_REPORT,