diff --git a/[refs] b/[refs] index e3cbf09fd16e..93f066c7ba00 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1dc403ffecae26ae52414488e326761a9ae10de7 +refs/heads/master: 3b08db37cb04a80dccac8c2d7b03690b5f179487 diff --git a/trunk/drivers/staging/line6/pcm.c b/trunk/drivers/staging/line6/pcm.c index f56c6427c36e..ae984344749f 100644 --- a/trunk/drivers/staging/line6/pcm.c +++ b/trunk/drivers/staging/line6/pcm.c @@ -452,9 +452,14 @@ int line6_init_pcm(struct usb_line6 *line6, line6pcm->line6 = line6; line6pcm->ep_audio_read = ep_read; line6pcm->ep_audio_write = ep_write; - line6pcm->max_packet_size = usb_maxpacket(line6->usbdev, - usb_rcvintpipe(line6->usbdev, - ep_read), 0); + + /* Read and write buffers are sized identically, so choose minimum */ + line6pcm->max_packet_size = min( + usb_maxpacket(line6->usbdev, + usb_rcvisocpipe(line6->usbdev, ep_read), 0), + usb_maxpacket(line6->usbdev, + usb_sndisocpipe(line6->usbdev, ep_write), 1)); + line6pcm->properties = properties; line6->line6pcm = line6pcm;