In fact I don't understand how the vhci_hcd is supposed to work. The constants are defined as follows: https://elixir.bootlin.com/linux/v4.15.4/source/drivers/usb/usbip/vhci.h#L75
/* Number of supported ports. Value has an upperbound of USB_MAXCHILDREN */ #ifdef CONFIG_USBIP_VHCI_HC_PORTS #define VHCI_HC_PORTS CONFIG_USBIP_VHCI_HC_PORTS #else #define VHCI_HC_PORTS 8 #endif /* Each VHCI has 2 hubs (USB2 and USB3), each has VHCI_HC_PORTS ports */ #define VHCI_PORTS (VHCI_HC_PORTS*2) #ifdef CONFIG_USBIP_VHCI_NR_HCS #define VHCI_NR_HCS CONFIG_USBIP_VHCI_NR_HCS #else #define VHCI_NR_HCS 1 #endif #define MAX_STATUS_NAME 16 Then in the line https://elixir.bootlin.com/linux/v4.15.4/source/drivers/usb/usbip/vhci_hcd.c#L46 we can see: int vhci_num_controllers = VHCI_NR_HCS; But, when I have unpacked the sources of the Debian kernel: ("apt source usbip" downloads and unpacks the kernel sources) In the debian/config/config I can see: CONFIG_USBIP_CORE=m CONFIG_USBIP_VHCI_HCD=m CONFIG_USBIP_VHCI_HC_PORTS=15 CONFIG_USBIP_VHCI_NR_HCS=8 CONFIG_USBIP_HOST=m So the number of created controllers is equal to 8, and for each controller there are 30 ports created (2 * 15) That results in 240 ports, that is above the MAXNPORT number defined in https://elixir.bootlin.com/linux/v4.15.4/source/tools/usb/usbip/libsrc/vhci_driver.h#L16 #define MAXNPORT 128 To obtain the working configuration it is necessary either to increase the MAXNPORT to 240 or even to 256 or to decrease the CONFIG_USBIP_VHCI_NR_HCS to 4 -- Wojciech M Zabolotny, PhD Institute of Electronic Systems Faculty of Electronics and Information Technology Warsaw University of Technology