hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/usb/misc/sisusbvga/sisusb.c
....@@ -3014,6 +3014,20 @@
30143014 struct usb_device *dev = interface_to_usbdev(intf);
30153015 struct sisusb_usb_data *sisusb;
30163016 int retval = 0, i;
3017
+ static const u8 ep_addresses[] = {
3018
+ SISUSB_EP_GFX_IN | USB_DIR_IN,
3019
+ SISUSB_EP_GFX_OUT | USB_DIR_OUT,
3020
+ SISUSB_EP_GFX_BULK_OUT | USB_DIR_OUT,
3021
+ SISUSB_EP_GFX_LBULK_OUT | USB_DIR_OUT,
3022
+ SISUSB_EP_BRIDGE_IN | USB_DIR_IN,
3023
+ SISUSB_EP_BRIDGE_OUT | USB_DIR_OUT,
3024
+ 0};
3025
+
3026
+ /* Are the expected endpoints present? */
3027
+ if (!usb_check_bulk_endpoints(intf, ep_addresses)) {
3028
+ dev_err(&intf->dev, "Invalid USB2VGA device\n");
3029
+ return -EINVAL;
3030
+ }
30173031
30183032 dev_info(&dev->dev, "USB2VGA dongle found at address %d\n",
30193033 dev->devnum);