[PATCH] A reset can be sent anytime and so the vhcd Root Hub should renable the port always on a virtual reset

From: Michael Broadfoot
Date: Tue Jul 20 2021 - 21:15:48 EST


And if the HIGH and LOW flags are not set on the port
status that means FULL speed and is not an
error (see 11.24.2.7.1 Port Status Bits)
---
drivers/usb/usbip/vhci_hcd.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c
index 4ba6bcdaa8e9..3ea76dcdc8e2 100644
--- a/drivers/usb/usbip/vhci_hcd.c
+++ b/drivers/usb/usbip/vhci_hcd.c
@@ -455,15 +455,12 @@ static int vhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
vhci_hcd->port_status[rhport] &= ~(1 << USB_PORT_FEAT_RESET);
vhci_hcd->re_timeout = 0;

- if (vhci_hcd->vdev[rhport].ud.status ==
- VDEV_ST_NOTASSIGNED) {
usbip_dbg_vhci_rh(
" enable rhport %d (status %u)\n",
rhport,
vhci_hcd->vdev[rhport].ud.status);
vhci_hcd->port_status[rhport] |=
USB_PORT_STAT_ENABLE;
- }

if (hcd->speed < HCD_USB3) {
switch (vhci_hcd->vdev[rhport].speed) {
@@ -475,8 +472,7 @@ static int vhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
vhci_hcd->port_status[rhport] |=
USB_PORT_STAT_LOW_SPEED;
break;
- default:
- pr_err("vhci_device speed not set\n");
+ default: // FULL speed
break;
}
}
--
2.30.2