summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorShuah Khan <shuahkh@osg.samsung.com>2018-01-26 11:54:35 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-02-03 17:05:43 +0100
commit9df847674ede722e12094def6520fd2ff98452df (patch)
tree0009e5fcb3bc34cb7934a6058c169524ce351dea /drivers/usb
parent57d4bb1beecb1b34237ddc8a08e819a0da4243b1 (diff)
usbip: vhci_hcd: clear just the USB_PORT_STAT_POWER bit
Upstream commit 1c9de5bf4286 ("usbip: vhci-hcd: Add USB3 SuperSpeed support") vhci_hcd clears all the bits port_status bits instead of clearing just the USB_PORT_STAT_POWER bit when it handles ClearPortFeature: USB_PORT_FEAT_POWER. This causes vhci_hcd attach to fail in a bad state, leaving device unusable by the client. The device is still attached and however client can't use it. The problem was fixed as part of larger change to add USB3 Super Speed support. This patch backports just the change to clear the USB_PORT_STAT_POWER. Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/usbip/vhci_hcd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c
index 7f161b095176..dbe615ba07c9 100644
--- a/drivers/usb/usbip/vhci_hcd.c
+++ b/drivers/usb/usbip/vhci_hcd.c
@@ -300,7 +300,7 @@ static int vhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
case USB_PORT_FEAT_POWER:
usbip_dbg_vhci_rh(
" ClearPortFeature: USB_PORT_FEAT_POWER\n");
- dum->port_status[rhport] = 0;
+ dum->port_status[rhport] &= ~USB_PORT_STAT_POWER;
dum->resuming = 0;
break;
case USB_PORT_FEAT_C_RESET: