• Don Zickus's avatar
    usb: Quiet down false peer failure messages · 6406eeb3
    Don Zickus authored
    My recent Intel box is spewing these messages:
    
    xhci_hcd 0000:00:14.0: xHCI Host Controller
    xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
    usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
    usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb2: Product: xHCI Host Controller
    usb usb2: Manufacturer: Linux 4.3.0+ xhci-hcd
    usb usb2: SerialNumber: 0000:00:14.0
    hub 2-0:1.0: USB hub found
    hub 2-0:1.0: 6 ports detected
    usb: failed to peer usb2-port2 and usb1-port1 by location (usb2-port2:none) (usb1-port1:usb2-port1)
    usb usb2-port2: failed to peer to usb1-port1 (-16)
    usb: port power management may be unreliable
    usb: failed to peer usb2-port3 and usb1-port1 by location (usb2-port3:none) (usb1-port1:usb2-port1)
    usb usb2-port3: failed to peer to usb1-port1 (-16)
    usb: failed to peer usb2-port5 and usb1-port1 by location (usb2-port5:none) (usb1-port1:usb2-port1)
    usb usb2-port5: failed to peer to usb1-port1 (-16)
    usb: failed to peer usb2-port6 and usb1-port1 by location (usb2-port6:none) (usb1-port1:usb2-port1)
    usb usb2-port6: failed to peer to usb1-port1 (-16)
    
    Diving into the acpi tables, I noticed the EHCI hub has 12 ports while the XHCI
    hub has 8 ports.  Most of those ports are of connect type USB_PORT_NOT_USED
    (including port 1 of the EHCI hub).
    
    Further the unused ports have location data initialized to 0x80000000.
    
    Now each unused port on the xhci hub walks the port list and finds a matching
    peer with port1 of the EHCI hub because the zero'd out group id bits falsely match.
    After port1 of the XHCI hub, each following matching peer will generate the
    above warning.
    
    These warnings seem to be harmless for this scenario as I don't think it
    matters that unused ports could not create a peer link.
    
    The attached patch utilizes that assumption and just turns the pr_warn into
    pr_debug to quiet things down.
    
    Tested on my Intel box.
    Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
    Acked-by: default avatarDan Williams <dan.j.williams@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6406eeb3
port.c 12.6 KB