From 67786d6ba6408c73efe28bfec56fc6a019053bb0 Mon Sep 17 00:00:00 2001 From: Libor Pechacek Date: Fri, 20 May 2011 14:53:25 +0200 Subject: [PATCH] --- yaml --- r: 253297 b: refs/heads/master c: 3824c1ddaf744be44b170a335332b9d6afe79254 h: refs/heads/master i: 253295: 1095c3d842299efb20034a86ba06b4c48fd49ed8 v: v3 --- [refs] | 2 +- trunk/drivers/usb/core/hub.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 9b856e35d9c0..cf8baa312b46 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9303961f5b8c8da0b65b897fb6521d2a123ec8a8 +refs/heads/master: 3824c1ddaf744be44b170a335332b9d6afe79254 diff --git a/trunk/drivers/usb/core/hub.c b/trunk/drivers/usb/core/hub.c index 79a58c3a2e2a..90ae1753dda1 100644 --- a/trunk/drivers/usb/core/hub.c +++ b/trunk/drivers/usb/core/hub.c @@ -339,7 +339,8 @@ static int get_hub_status(struct usb_device *hdev, { int i, status = -ETIMEDOUT; - for (i = 0; i < USB_STS_RETRIES && status == -ETIMEDOUT; i++) { + for (i = 0; i < USB_STS_RETRIES && + (status == -ETIMEDOUT || status == -EPIPE); i++) { status = usb_control_msg(hdev, usb_rcvctrlpipe(hdev, 0), USB_REQ_GET_STATUS, USB_DIR_IN | USB_RT_HUB, 0, 0, data, sizeof(*data), USB_STS_TIMEOUT); @@ -355,7 +356,8 @@ static int get_port_status(struct usb_device *hdev, int port1, { int i, status = -ETIMEDOUT; - for (i = 0; i < USB_STS_RETRIES && status == -ETIMEDOUT; i++) { + for (i = 0; i < USB_STS_RETRIES && + (status == -ETIMEDOUT || status == -EPIPE); i++) { status = usb_control_msg(hdev, usb_rcvctrlpipe(hdev, 0), USB_REQ_GET_STATUS, USB_DIR_IN | USB_RT_PORT, 0, port1, data, sizeof(*data), USB_STS_TIMEOUT);