diff --git a/drivers/media/usb/siano/smsusb.c b/drivers/media/usb/siano/smsusb.c index 0fdc2e0950b7..43eea51b60d5 100644 --- a/drivers/media/usb/siano/smsusb.c +++ b/drivers/media/usb/siano/smsusb.c @@ -93,6 +93,11 @@ static void smsusb_onresponse(struct urb *urb) urb->status, urb->actual_length); return; } + if (urb->status == -EPROTO) { + pr_err("error, urb status %d (-EPROTO), %d bytes\n", + urb->status, urb->actual_length); + return; + } if ((urb->actual_length > 0) && (urb->status == 0)) { struct sms_msg_hdr *phdr = (struct sms_msg_hdr *)surb->cb->p; @@ -168,7 +173,7 @@ static int smsusb_submit_urb(struct smsusb_device_t *dev, smsusb_onresponse, surb ); - surb->urb->transfer_flags |= URB_FREE_BUFFER; + // surb->urb->transfer_flags |= URB_FREE_BUFFER; return usb_submit_urb(surb->urb, GFP_ATOMIC); }