From: Malcolm Priestley <tvboxspy@gmail.com> Date: Mon, 17 Feb 2014 21:16:20 +0000 (+0000) Subject: staging: vt6656: s_nsInterruptUsbIoCompleteRead add urb status returns X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=c98fbf9075e61a611edbb35475f2001197ca113e;p=linux.git staging: vt6656: s_nsInterruptUsbIoCompleteRead add urb status returns Drop out of urb return on usb errors and set intBuf.bInUse to false. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- diff --git a/drivers/staging/vt6656/usbpipe.c b/drivers/staging/vt6656/usbpipe.c index 258eec13b8dfd..d18cb2f0fb419 100644 --- a/drivers/staging/vt6656/usbpipe.c +++ b/drivers/staging/vt6656/usbpipe.c @@ -364,6 +364,19 @@ static void s_nsInterruptUsbIoCompleteRead(struct urb *urb) // 4) The irp was cancelled. // 5) Some other failure from the USB device object. // + switch (urb->status) { + case 0: + case -ETIMEDOUT: + break; + case -ECONNRESET: + case -ENOENT: + case -ESHUTDOWN: + pDevice->intBuf.bInUse = false; + return; + default: + break; + } + ntStatus = urb->status; DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"s_nsInterruptUsbIoCompleteRead Status %d\n", ntStatus);