]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/usb/core/hub.c
USB: hub: fix SS max number of ports
[karo-tx-linux.git] / drivers / usb / core / hub.c
index f77a4ebde7d576e9f0fa8a71a13650cd0873dc99..b8bb20d7acdb9f1480009605f10e2f5ae4045ec9 100644 (file)
@@ -1336,7 +1336,13 @@ static int hub_configure(struct usb_hub *hub,
        if (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;