Patch "USB: hub: fix SS max number of ports" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
USB: hub: fix SS max number of ports
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
usb-hub-fix-ss-max-number-of-ports.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
93491ced3c87c94b12220dbac0527e1356702179Mon Sep 17 00:00:00 2001
From: Johan Hovold <[email protected]>
Date: Wed, 10 May 2017 18:18:29 +0200
Subject: USB: hub: fix SS max number of ports
From: Johan Hovold <[email protected]>
commit 93491ced3c87c94b12220dbac0527e1356702179 upstream.
Add define for the maximum number of ports on a SuperSpeed hub as per USB 3.1 spec Table 10-5, and use it when verifying the retrieved hub descriptor.
This specifically avoids benign attempts to update the DeviceRemovable mask for non-existing ports (should we get that far).
--- drivers/usb/core/hub.c | 8 +++++++- include/uapi/linux/usb/ch11.h | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-)
drivers/usb/core/hub.c +7 -1
@@ -1334,7 +1334,13 @@ static int hub_configure(struct usb_hubif (ret <0 ) { message ="can't read hub descriptor" ; goto fail; - }else if (hub->descriptor->bNbrPorts >USB_MAXCHILDREN ) { + } + + maxchild =USB_MAXCHILDREN ; +if (hub_is_superspeed (hdev)) + maxchild =min_t (unsigned, maxchild,USB_SS_MAXPORTS ); + +if (hub->descriptor->bNbrPorts > maxchild) { message ="hub has too many ports!" ; ret = -ENODEV ; goto fail;
include/uapi/linux/usb/ch11.h +3 -0
@@ -22,6 +22,9 @@*/ #define USB_MAXCHILDREN 31 +/* See USB 3.1 spec Table 10-5 */ +#define USB_SS_MAXPORTS 15 +/* * Hub request types */
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/usb-usbip-fix-nonconforming-hub-descriptor.patch queue-4.9/usb-gadget-dummy_hcd-fix-hub-descriptor-removable-fields.patch queue-4.9/usb-hub-fix-ss-max-number-of-ports.patch