ChangeSet 1.808.2.17, 2002/10/28 11:48:30-08:00, greg@kroah.com fix the usb image drivers due to interrupt urb no automatic resubmission change to the usb core. diff -Nru a/drivers/usb/image/scanner.c b/drivers/usb/image/scanner.c --- a/drivers/usb/image/scanner.c Mon Oct 28 13:53:15 2002 +++ b/drivers/usb/image/scanner.c Mon Oct 28 13:53:15 2002 @@ -364,18 +364,33 @@ struct scn_usb_data *scn; unsigned char *data; + int status; + scn = urb->context; data = &scn->button; data += 0; /* Keep gcc from complaining about unused var */ - if (urb->status) { + switch (urb->status) { + case 0: + /* success */ + break; + case -ECONNRESET: + case -ENOENT: + case -ESHUTDOWN: + /* this urb is terminated, clean up */ + dbg("%s - urb shutting down with status: %d", __FUNCTION__, urb->status); return; + default: + dbg("%s - nonzero urb status received: %d", __FUNCTION__, urb->status); } dbg("irq_scanner(%d): data:%x", scn->scn_minor, *data); - return; + status = usb_submit_urb (urb, GFP_ATOMIC); + if (status) + err ("%s - usb_submit_urb failed with result %d", + __FUNCTION__, status); } static int