diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index 01625dbb28e8..4c3d9d6b7009 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -316,6 +316,10 @@ static void hid_irq_in(struct urb *urb) clear_bit(HID_IN_RUNNING, &usbhid->iofl); hid_io_error(hid); return; + case -EOVERFLOW: /* Value too large, WAR */ + printk("input irq status -75 : RESETTING HID...\n"); + schedule_work(&usbhid->reset_work); + return; default: /* error */ hid_warn(urb->dev, "input irq status %d received\n", urb->status);