USB: lvstest: tighten endpoint sanity check
authorJohan Hovold <johan@kernel.org>
Tue, 28 Mar 2017 08:33:15 +0000 (10:33 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Mar 2017 09:53:15 +0000 (11:53 +0200)
Use the new endpoint helpers to lookup the required interrupt-in
endpoint.

Note that this in fact both loosens and tightens the endpoint sanity
check by accepting any interface with an interrupt-in endpoint rather
than always using the first endpoint without verifying its type.

Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/lvstest.c

index 6d075cd..2142132 100644 (file)
@@ -367,10 +367,9 @@ static int lvs_rh_probe(struct usb_interface *intf,
        hdev = interface_to_usbdev(intf);
        desc = intf->cur_altsetting;
 
-       if (desc->desc.bNumEndpoints < 1)
-               return -ENODEV;
-
-       endpoint = &desc->endpoint[0].desc;
+       ret = usb_find_int_in_endpoint(desc, &endpoint);
+       if (ret)
+               return ret;
 
        /* valid only for SS root hub */
        if (hdev->descriptor.bDeviceProtocol != USB_HUB_PR_SS || hdev->parent) {