usb: rearrange usb_ep_get()

There is no need to calculate the 'eps' variable in usb_ep_get()
if 'ep' is the control endpoint.  Instead the calculation should
be done after validating the input before returning an entry
indexed by the endpoint 'ep'.

Signed-off-by: Liam Merwick <liam.merwick@oracle.com>
Reviewed-by: Darren Kenny <Darren.Kenny@oracle.com>
Reviewed-by: Mark Kanda <Mark.Kanda@oracle.com>
Reviewed-by: Ameya More <ameya.more@oracle.com>
Message-id: 1549460216-25808-2-git-send-email-liam.merwick@oracle.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Liam Merwick 2019-02-06 13:36:48 +00:00 committed by Gerd Hoffmann
parent 2e68b86206
commit 56090d78a7

View File

@ -720,12 +720,12 @@ struct USBEndpoint *usb_ep_get(USBDevice *dev, int pid, int ep)
if (dev == NULL) { if (dev == NULL) {
return NULL; return NULL;
} }
eps = (pid == USB_TOKEN_IN) ? dev->ep_in : dev->ep_out;
if (ep == 0) { if (ep == 0) {
return &dev->ep_ctl; return &dev->ep_ctl;
} }
assert(pid == USB_TOKEN_IN || pid == USB_TOKEN_OUT); assert(pid == USB_TOKEN_IN || pid == USB_TOKEN_OUT);
assert(ep > 0 && ep <= USB_MAX_ENDPOINTS); assert(ep > 0 && ep <= USB_MAX_ENDPOINTS);
eps = (pid == USB_TOKEN_IN) ? dev->ep_in : dev->ep_out;
return eps + ep - 1; return eps + ep - 1;
} }