usb: host: Initiate urb ep with udev ep0
authorKhalid Masum <khalid.masum.92@gmail.com>
Wed, 24 Aug 2022 20:31:07 +0000 (02:31 +0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 31 Aug 2022 07:07:53 +0000 (09:07 +0200)
Currently we look up for endpoint in a table and initate urb endpoint
with it. This is unnecessary because the lookup will always result in
endpoint 0.

Suggested-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Khalid Masum <khalid.masum.92@gmail.com>
Link: https://lore.kernel.org/r/20220824203107.14908-1-khalid.masum.92@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/hcd.c

index 90dd32a24e5baac85dda791015b5dd7555fd3952..faeaace0d197dbb88739cebf8bd06617a5712171 100644 (file)
@@ -2158,21 +2158,14 @@ static struct urb *request_single_step_set_feature_urb(
 {
        struct urb *urb;
        struct usb_hcd *hcd = bus_to_hcd(udev->bus);
-       struct usb_host_endpoint *ep;
 
        urb = usb_alloc_urb(0, GFP_KERNEL);
        if (!urb)
                return NULL;
 
        urb->pipe = usb_rcvctrlpipe(udev, 0);
-       ep = (usb_pipein(urb->pipe) ? udev->ep_in : udev->ep_out)
-                               [usb_pipeendpoint(urb->pipe)];
-       if (!ep) {
-               usb_free_urb(urb);
-               return NULL;
-       }
 
-       urb->ep = ep;
+       urb->ep = &udev->ep0;
        urb->dev = udev;
        urb->setup_packet = (void *)dr;
        urb->transfer_buffer = buf;