staging: most: fix USB babble on IN pipe
authorChristian Gromm <christian.gromm@microchip.com>
Mon, 28 Sep 2015 15:18:34 +0000 (17:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Sep 2015 01:18:49 +0000 (03:18 +0200)
This patch prevents the HDM USB from submitting an URB with a buffer size
unaligned to 512 bytes to the USB subsystem.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/most/hdm-usb/hdm_usb.c

index 9bbefaaa013441b095611abc8f5c2cf1db1f5873..9006793aec64464bdb529f6536c448103d718825 100644 (file)
@@ -711,7 +711,7 @@ static int hdm_enqueue(struct most_interface *iface, int channel, struct mbo *mb
                                  usb_rcvbulkpipe(mdev->usb_device,
                                                  mdev->ep_address[channel]),
                                  virt_address,
-                                 length,
+                                 length + conf->extra_len,
                                  hdm_read_completion,
                                  mbo);
        }
@@ -771,6 +771,7 @@ static int hdm_configure_channel(struct most_interface *iface, int channel,
            !((conf->data_type == MOST_CH_ISOC_AVP) &&
              (conf->packets_per_xact != 0xFF))) {
                mdev->padding_active[channel] = false;
+               conf->extra_len = 0;
                goto exit;
        }