summaryrefslogtreecommitdiff
path: root/libusb/os
diff options
context:
space:
mode:
authorJakub Klama <jakub.klama@twoporeguys.com>2017-11-22 20:40:09 +0100
committerChris Dickens <christopher.a.dickens@gmail.com>2017-12-22 11:37:52 -0800
commitbb172b4356c1ace9aa2d2eb4b805f90ae6678de3 (patch)
tree8bf55e15cb5eae1d8f33bf19cbd3f1f64d81e2c7 /libusb/os
parent4d9fc6264366f971a7382e7b5bb91c46c440c0f1 (diff)
downloadlibusb-bb172b4356c1ace9aa2d2eb4b805f90ae6678de3.tar.gz
linux_usbfs: Set urb->buffer_length for isochronous transfers
Linux 4.13 expects buffer_length to match sum of iso descriptor lengths. Closes #365 Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
Diffstat (limited to 'libusb/os')
-rw-r--r--libusb/os/linux_usbfs.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c
index 9486d66..5160e86 100644
--- a/libusb/os/linux_usbfs.c
+++ b/libusb/os/linux_usbfs.c
@@ -2082,6 +2082,7 @@ static int submit_iso_transfer(struct usbi_transfer *itransfer)
for (j = 0, k = packet_offset - urb_packet_offset;
k < packet_offset; k++, j++) {
packet_len = transfer->iso_packet_desc[k].length;
+ urb->buffer_length += packet_len;
urb->iso_frame_desc[j].length = packet_len;
}