diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index a9e85bdd4cc6..039c19581e2b 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -315,6 +315,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);