[alsa-devel] [PATCH RFC 2/4] usb: Allow us to distinguish between different returns of EMSGSIZE
Mark Hills
mark at xwax.org
Sun Mar 3 18:57:35 CET 2013
---
drivers/usb/core/urb.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
index e0d9d94..7f00213 100644
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -408,16 +408,24 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
return -EINVAL;
for (n = 0; n < urb->number_of_packets; n++) {
len = urb->iso_frame_desc[n].length;
- if (len < 0 || len > max)
+ if (len < 0 || len > max) {
+ dev_dbg(&dev->dev,
+ "bad packet length %d (max %d)",
+ len, max);
return -EMSGSIZE;
+ }
urb->iso_frame_desc[n].status = -EXDEV;
urb->iso_frame_desc[n].actual_length = 0;
}
}
/* the I/O buffer must be mapped/unmapped, except when length=0 */
- if (urb->transfer_buffer_length > INT_MAX)
+ if (urb->transfer_buffer_length > INT_MAX) {
+ dev_dbg(&dev->dev,
+ "transfer buffer length (%d) too large",
+ urb->transfer_buffer_length);
return -EMSGSIZE;
+ }
#ifdef DEBUG
/* stuff that drivers shouldn't do, but which shouldn't
--
1.7.12.1
More information about the Alsa-devel
mailing list