Commit 122d6a34 authored by Cameron Gutman's avatar Cameron Gutman Committed by Dmitry Torokhov

Input: xpad - validate USB endpoint type during probe

We should only see devices with interrupt endpoints. Ignore any other
endpoints that we find, so we don't send try to send them interrupt URBs
and trigger a WARN down in the USB stack.
Reported-by: default avatarAndrey Konovalov <andreyknvl@google.com>
Tested-by: default avatarAndrey Konovalov <andreyknvl@google.com>
Cc: <stable@vger.kernel.org> # c01b5e74 Input: xpad - don't depend on endpoint order
Signed-off-by: default avatarCameron Gutman <aicommander@gmail.com>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 39467fc1
...@@ -1750,11 +1750,13 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id ...@@ -1750,11 +1750,13 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
struct usb_endpoint_descriptor *ep = struct usb_endpoint_descriptor *ep =
&intf->cur_altsetting->endpoint[i].desc; &intf->cur_altsetting->endpoint[i].desc;
if (usb_endpoint_xfer_int(ep)) {
if (usb_endpoint_dir_in(ep)) if (usb_endpoint_dir_in(ep))
ep_irq_in = ep; ep_irq_in = ep;
else else
ep_irq_out = ep; ep_irq_out = ep;
} }
}
if (!ep_irq_in || !ep_irq_out) { if (!ep_irq_in || !ep_irq_out) {
error = -ENODEV; error = -ENODEV;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment