[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#891036: The problem is related to the number of ports created in vhci_hcd.0



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


Reply to: