]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[xhci] Use root hub port number to determine slot type
authorMichael Brown <mcb30@ipxe.org>
Fri, 18 Jul 2025 13:24:23 +0000 (14:24 +0100)
committerMichael Brown <mcb30@ipxe.org>
Fri, 18 Jul 2025 13:58:56 +0000 (14:58 +0100)
commiteca97c2ee2e44c606f6c9664003751ae0f444c72
tree3ba92d0bc16703db5ee0be1e598b52aecbb608be
parent8a8904aaddcc9497b2c3d110785b52e4d1dca336
[xhci] Use root hub port number to determine slot type

We currently use the downstream hub's port number to determine the
xHCI slot type for a newly connected USB device.  The downstream hub
port number is irrelevant to the xHCI controller's supported protocols
table: the relevant value is the number of the root hub port through
which the device is attached.

Fix by using the root hub port number instead of the immediate parent
hub's port number.

This bug has not previously been detected since the slot type for the
first N root hub ports will invariably be zero to indicate that these
are USB ports.  For any xHCI controller with a sufficiently large
number of root hub ports, the code would therefore end up happening to
calculate the correct slot type value despite using an incorrect port
number.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/usb/xhci.c