Commit 8e1682fd authored by Oliver Neukum's avatar Oliver Neukum Committed by Sasha Levin

usb: hub: fix a typo in hub_port_init() leading to wrong logic

[ Upstream commit 0d5ce778 ]

A typo of j for i led to a logic bug. To rule out future
confusion, the variable names are made meaningful.
Signed-off-by: default avatarOliver Neukum <ONeukum@suse.com>
CC: stable@vger.kernel.org
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
parent 444cf548
...@@ -4237,7 +4237,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1, ...@@ -4237,7 +4237,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
{ {
struct usb_device *hdev = hub->hdev; struct usb_device *hdev = hub->hdev;
struct usb_hcd *hcd = bus_to_hcd(hdev->bus); struct usb_hcd *hcd = bus_to_hcd(hdev->bus);
int i, j, retval; int retries, operations, retval, i;
unsigned delay = HUB_SHORT_RESET_TIME; unsigned delay = HUB_SHORT_RESET_TIME;
enum usb_device_speed oldspeed = udev->speed; enum usb_device_speed oldspeed = udev->speed;
const char *speed; const char *speed;
...@@ -4339,7 +4339,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1, ...@@ -4339,7 +4339,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
* first 8 bytes of the device descriptor to get the ep0 maxpacket * first 8 bytes of the device descriptor to get the ep0 maxpacket
* value. * value.
*/ */
for (i = 0; i < GET_DESCRIPTOR_TRIES; (++i, msleep(100))) { for (retries = 0; retries < GET_DESCRIPTOR_TRIES; (++retries, msleep(100))) {
bool did_new_scheme = false; bool did_new_scheme = false;
if (use_new_scheme(udev, retry_counter)) { if (use_new_scheme(udev, retry_counter)) {
...@@ -4366,7 +4366,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1, ...@@ -4366,7 +4366,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
* 255 is for WUSB devices, we actually need to use * 255 is for WUSB devices, we actually need to use
* 512 (WUSB1.0[4.8.1]). * 512 (WUSB1.0[4.8.1]).
*/ */
for (j = 0; j < 3; ++j) { for (operations = 0; operations < 3; ++operations) {
buf->bMaxPacketSize0 = 0; buf->bMaxPacketSize0 = 0;
r = usb_control_msg(udev, usb_rcvaddr0pipe(), r = usb_control_msg(udev, usb_rcvaddr0pipe(),
USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, USB_REQ_GET_DESCRIPTOR, USB_DIR_IN,
...@@ -4392,7 +4392,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1, ...@@ -4392,7 +4392,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
* reset. But only on the first attempt, * reset. But only on the first attempt,
* lest we get into a time out/reset loop * lest we get into a time out/reset loop
*/ */
if (r == 0 || (r == -ETIMEDOUT && j == 0)) if (r == 0 || (r == -ETIMEDOUT && retries == 0))
break; break;
} }
udev->descriptor.bMaxPacketSize0 = udev->descriptor.bMaxPacketSize0 =
...@@ -4424,7 +4424,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1, ...@@ -4424,7 +4424,7 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
* authorization will assign the final address. * authorization will assign the final address.
*/ */
if (udev->wusb == 0) { if (udev->wusb == 0) {
for (j = 0; j < SET_ADDRESS_TRIES; ++j) { for (operations = 0; operations < SET_ADDRESS_TRIES; ++operations) {
retval = hub_set_address(udev, devnum); retval = hub_set_address(udev, devnum);
if (retval >= 0) if (retval >= 0)
break; break;
......
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