2022-08-24 21:11:44

by Khalid Masum

[permalink] [raw]
Subject: [PATCH v2] usb: host: Initiate urb ep with udev ep0

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 <[email protected]>
Signed-off-by: Khalid Masum <[email protected]>
---
Changes since v1:
- Remove endpoint lookup and NULL check
- Remove unnecessary variable *ep
- Initiate urb ep with udev ep0
- Update commit message
- v1 Link: https://lore.kernel.org/lkml/[email protected]/

drivers/usb/core/hcd.c | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 94b305bbd621..05f30ae5570b 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -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;
--
2.37.1


2022-08-25 14:37:39

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH v2] usb: host: Initiate urb ep with udev ep0

On Thu, Aug 25, 2022 at 02:31:07AM +0600, Khalid Masum wrote:
> 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 <[email protected]>
> Signed-off-by: Khalid Masum <[email protected]>
> ---
> Changes since v1:
> - Remove endpoint lookup and NULL check
> - Remove unnecessary variable *ep
> - Initiate urb ep with udev ep0
> - Update commit message
> - v1 Link: https://lore.kernel.org/lkml/[email protected]/
>
> drivers/usb/core/hcd.c | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
> index 94b305bbd621..05f30ae5570b 100644
> --- a/drivers/usb/core/hcd.c
> +++ b/drivers/usb/core/hcd.c
> @@ -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;

Acked-by: Alan Stern <[email protected]>