Message ID | 1402525887-29142-1-git-send-email-jeroen@myspectrum.nl |
---|---|
State | Accepted |
Delegated to: | Marek Vasut |
Headers | show |
On Thursday, June 12, 2014 at 12:31:27 AM, Jeroen Hofstee wrote: > Because of the brackets the & and && is evaluated before > the comparison. This is likely not the intention. Change > it to test the first and second condition to both be true. > > cc: Marek Vasut <marex@denx.de> > Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> Applied, thanks! Best regards, Marek Vasut
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index d1c2e5c..59dc096 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -643,8 +643,8 @@ static int xhci_submit_root(struct usb_device *udev, unsigned long pipe, struct xhci_ctrl *ctrl = udev->controller; struct xhci_hcor *hcor = ctrl->hcor; - if (((req->requesttype & USB_RT_PORT) && - le16_to_cpu(req->index)) > CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS) { + if ((req->requesttype & USB_RT_PORT) && + le16_to_cpu(req->index) > CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS) { printf("The request port(%d) is not configured\n", le16_to_cpu(req->index) - 1); return -EINVAL;
Because of the brackets the & and && is evaluated before the comparison. This is likely not the intention. Change it to test the first and second condition to both be true. cc: Marek Vasut <marex@denx.de> Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> --- fixes a warning: drivers/usb/host/xhci.c:647:32: warning: comparison of constant 2 with boolean expression is always false [-Wtautological-constant-out-of-range-compare] le16_to_cpu(req->index)) > CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS) { ~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOT tested, wait for Marek to ack this! --- drivers/usb/host/xhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)