Re: Control message failures kill entire XHCI stack

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

 



Hello Baolu,

I'm doing most of my testing on a 2014 Retina Macbook Pro.  lsusb
output below.  I've also seen the issue on an Intel NUC D34010WYKH,
which I don't have in front of me or I would provide the lsusb output
for that as well.

Apologies to Mathias for not getting back to this sooner.  I've been
buried in another project but plan to get back to it this week.

Thanks for investigating this issue.

Cheers,

Devin

Bus 002 Device 002: ID 05ac:8406 Apple, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         9
  idVendor           0x05ac Apple, Inc.
  idProduct          0x8406
  bcdDevice            8.20
  iManufacturer           3 Apple
  iProduct                4 Card Reader
  iSerial                 5 000000000820
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           44
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              224mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               4
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           22
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000002
      Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x02
      Latency Tolerance Messages (LTM) Supported
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat        2047 micro seconds
Device Status:     0x0010
  (Bus Powered)
  Latency Tolerance Messaging (LTM) Enabled

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         3
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            3.19
  iManufacturer           3 Linux 3.19.0-rc5djh+ xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:00:14.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           31
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
        bMaxBurst               0
Hub Descriptor:
  bLength              12
  bDescriptorType      42
  nNbrPorts             4
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood       10 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  bHubDecLat          0.0 micro seconds
  wHubDelay             0 nano seconds
  DeviceRemovable    0x00
 Hub Port Status:
   Port 1: 0000.02a0 5Gbps power Rx.Detect
   Port 2: 0000.02a0 5Gbps power Rx.Detect
   Port 3: 0000.0203 5Gbps power U0 enable connect
   Port 4: 0000.02a0 5Gbps power Rx.Detect
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           15
  bNumDeviceCaps          1
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x02
      Latency Tolerance Messages (LTM) Supported
    wSpeedsSupported   0x0008
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   3
      Lowest fully-functional device speed is SuperSpeed (5Gbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat         512 micro seconds
Device Status:     0x0001
  Self Powered

Bus 001 Device 004: ID 05ac:0259 Apple, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x05ac Apple, Inc.
  idProduct          0x0259
  bcdDevice            2.24
  iManufacturer           1 Apple Inc.
  iProduct                2 Apple Internal Keyboard / Trackpad
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           84
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               40mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              3 Apple Internal Keyboard
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     156
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000a  1x 10 bytes
        bInterval               8
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              4 Touchpad
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      27
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               2
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              4 Touchpad
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      52
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               8
Device Status:     0x0000
  (Bus Powered)

Bus 001 Device 007: ID 05ac:8289 Apple, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass         1
  bDeviceProtocol         1
  bMaxPacketSize0        64
  idVendor           0x05ac Apple, Inc.
  idProduct          0x8289
  bcdDevice            0.99
  iManufacturer           1 Apple Inc.
  iProduct                2 Bluetooth USB Host Controller
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          216
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1
      bInterfaceProtocol      1
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      1
      iInterface              0
      Device Firmware Upgrade Interface Descriptor:
        bLength                             7
        bDescriptorType                    33
        bmAttributes                        7
          Will Not Detach
          Manifestation Tolerant
          Upload Supported
          Download Supported
        wDetachTimeout                   5000 milliseconds
        wTransferSize                      64 bytes
Device Status:     0x0001
  Self Powered

Bus 001 Device 003: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub
(part of BCM2046 Bluetooth)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0         8
  idVendor           0x0a5c Broadcom Corp.
  idProduct          0x4500 BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
  bcdDevice            1.00
  iManufacturer           1 Apple Inc.
  iProduct                2 BRCM20702 Hub
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower               94mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             255
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             3
  wHubCharacteristic 0x0004
    Ganged power switching
    Compound device
    Ganged overcurrent protection
  bPwrOn2PwrGood       50 * 2 milli seconds
  bHubContrCurrent    100 milli Ampere
  DeviceRemovable    0x0e
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0100 power
   Port 3: 0000.0103 power enable connect
Device Status:     0x0001
  Self Powered

Bus 001 Device 002: ID 05ac:1402 Apple, Inc. Ethernet Adapter [A1277]
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x05ac Apple, Inc.
  idProduct          0x1402 Ethernet Adapter [A1277]
  bcdDevice            0.01
  iManufacturer           1 Apple Inc.
  iProduct                2 Apple USB Ethernet Adapter
  iSerial                 3 18E4ED
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              250mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol      0
      iInterface              7 0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              11
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol         0
  bMaxPacketSize0         8
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            3.19
  iManufacturer           3 Linux 3.19.0-rc5djh+ xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:00:14.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
Hub Descriptor:
  bLength              11
  bDescriptorType      41
  nNbrPorts             9
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood       10 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00 0x00
  PortPwrCtrlMask    0xff 0xff
 Hub Port Status:
   Port 1: 0000.0503 highspeed power enable connect
   Port 2: 0000.0100 power
   Port 3: 0000.0103 power enable connect
   Port 4: 0000.0100 power
   Port 5: 0000.0103 power enable connect
   Port 6: 0000.0100 power
   Port 7: 0000.0100 power
   Port 8: 0000.0100 power
   Port 9: 0000.0100 power
Device Status:     0x0001
  Self Powered

Devin

On Tue, Mar 10, 2015 at 5:55 AM, Lu, Baolu <baolu.lu@xxxxxxxxxxxxxxx> wrote:
> Hi Devin,
>
> Do you mind to post output of "lspci -xv" on the machine where you saw this
> problem?
>
> We are facing the same problems in other cases. I could provide a patch for
> it later.
>
> Thanks,
> Baolu
>
>
> On 01/19/2015 04:55 AM, Devin Heitmueller wrote:
>>
>> Hello,
>>
>> I'm debugging some issues on a couple of different USB TV tuners which
>> boil down to the following error:
>>
>> xhci_hcd 0000:00:14.0: xHCI host not responding to stop endpoint command.
>>
>> This is followed by the XHCI driver disconnecting *all* USB devices
>> from the controller.
>>
>> I've done a bit of debugging, and the root of the issue appears to be
>> an intermittent control message timing out, and then the call to
>> usb_kill_urb() that occurs inside of usb_control_msg() when the
>> timeout expires is what causes the disconnect.  Specifically, it would
>> appear that xhci_urb_dequeue tries to stop the endpoint using
>> xhci_queue_stop_endpoint(), the command gets queued but the IRQ never
>> fires to perform the TRB_STOP_RING completion code. The function
>> xhci_stop_endpoint_command_watchdog() fires after five seconds, which
>> tears down the entire driver.
>>
>> Below is the dmesg output with the xhci_hcd debugging enabled.  The
>> dump_stack() call is something I added (i.e. it's not an OOPS) so I
>> could see which code path was making the usb_kill_urb() call that was
>> failing.  Note that the caller is using usb_control_msg() with 1000ms
>> timeout, and we can see from the timestamps that the timer expires
>> which is what causes the call to usb_kill_urb().
>>
>> I would imagine that explicitly killing URBs is a pretty uncommon task
>> for control endpoint messages (compared to ISOC or BULK endpoints
>> where it's done regularly).  Is it possible a exception case has been
>> missed?
>>
>> Independent of the usb_kill_urb() killing the entire stack, I still
>> don't really understand yet why the control message failed in the
>> first place.  This is a well-exercised code path in the au0828 driver
>> (related to I2C transfers) and I've never seen this when using the
>> EHCI driver.  My assumption is that either the HCD is getting sick
>> which is causing both the control message to fail as well as putting
>> it into an inconsistent state such that we never get the TRB_STOP_RING
>> IRQ, or we've got two separate bugs - the control message failing for
>> some "legitimate" reason (i.e. I screwed something up in my au0828
>> driver), followed by the usb_kill_urb() error simply not handling
>> killing of URBs on a control endpoint (which causes the entire stack
>> to go down).
>>
>> Thoughts/suggestions/recommendations are welcome.
>>
>> Thanks in advance,
>>
>> Devin
>>
>> Jan 18 14:04:05 devin-MacBookPro kernel: [ 9119.647249] au0828:
>> au0828_writereg(0x0100, 0x00)
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.645091] xhci_hcd
>> 0000:00:14.0: Cancel URB ffff8802543c36c0, dev 1, ep 0x0, starting at
>> offset 0x25c358940
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.645365] djh dequeue
>> pending=0 ep_index=0
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.645632] CPU: 1 PID:
>> 2782 Comm: tvtime Tainted: P           OE  3.18.0-rc4djh+ #33
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.645921] Hardware name:
>> Apple Inc. MacBookPro11,1/Mac-189A3D4F975D5FFC, BIOS
>> MBP111.88Z.0138.B11.1408291433 08/29/2014
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.646236]
>> ffff88025b9b0000 ffff88023ea2f9d8 ffffffff817445c1 0000000000000000
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.646570]
>> ffff8802543c36c0 ffff88023ea2fa58 ffffffffa0080b2e 000000025c358940
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.646909]
>> ffff88023ea2fa48 000000003ea2fa18 ffff88023e8a22a0 0000000000000000
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.647256] Call Trace:
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.647605]
>> [<ffffffff817445c1>] dump_stack+0x46/0x58
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.647981]
>> [<ffffffffa0080b2e>] xhci_urb_dequeue+0x28e/0x420 [xhci_hcd]
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.648357]
>> [<ffffffff8157f1fd>] unlink1+0x2d/0x130
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.648743]
>> [<ffffffff810cbd80>] ? internal_add_timer+0xb0/0xb0
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.649133]
>> [<ffffffff814aaa67>] ? get_device+0x17/0x30
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.649526]
>> [<ffffffff8158129d>] usb_hcd_unlink_urb+0x5d/0xf0
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.649928]
>> [<ffffffff8158281a>] usb_kill_urb+0x3a/0xa0
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.650334]
>> [<ffffffff81093890>] ? wake_up_state+0x20/0x20
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.650746]
>> [<ffffffff81583068>] usb_start_wait_urb+0xc8/0x150
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.651166]
>> [<ffffffff811b4065>] ? __kmalloc+0x55/0x190
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.651586]
>> [<ffffffff815831b5>] usb_control_msg+0xc5/0x110
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.652011]
>> [<ffffffffa05362a9>] au0828_writereg+0x79/0xf0 [au0828]
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.652447]
>> [<ffffffff810ccfaf>] ? try_to_del_timer_sync+0x4f/0x70
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.652894]
>> [<ffffffffa053b929>] au0828_analog_stream_disable+0x29/0x50 [au0828]
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.653354]
>> [<ffffffffa053ba29>] vidioc_streamoff+0xd9/0x1c0 [au0828]
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.653823]
>> [<ffffffffa0b5a98a>] v4l_streamoff+0x1a/0x20 [videodev]
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.654298]
>> [<ffffffffa0b5d484>] __video_do_ioctl+0x274/0x2f0 [videodev]
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.654786]
>> [<ffffffff811c4dcf>] ? commit_charge+0x1f/0x80
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.655278]
>> [<ffffffffa0b5fdbe>] video_usercopy+0x21e/0x580 [videodev]
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.655784]
>> [<ffffffffa0b5d210>] ? v4l_dqevent+0x20/0x20 [videodev]
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.656295]
>> [<ffffffff8105623c>] ? __do_page_fault+0x20c/0x550
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.656815]
>> [<ffffffffa0b60135>] video_ioctl2+0x15/0x20 [videodev]
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.657359]
>> [<ffffffffa0b596bf>] v4l2_ioctl+0x10f/0x150 [videodev]
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.657895]
>> [<ffffffff8111c2dc>] ? acct_account_cputime+0x1c/0x20
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.658440]
>> [<ffffffff811e3040>] do_vfs_ioctl+0x2e0/0x4c0
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.658993]
>> [<ffffffff81097374>] ? vtime_account_user+0x54/0x60
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.659551]
>> [<ffffffff81022097>] ? syscall_trace_enter_phase2+0xa7/0x1d0
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.660116]
>> [<ffffffff811e32a1>] SyS_ioctl+0x81/0xa0
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.660690]
>> [<ffffffff8174cc24>] tracesys_phase2+0xd8/0xdd
>> Jan 18 14:04:06 devin-MacBookPro kernel: [ 9120.664207] xhci_hcd
>> 0000:00:14.0: // Ding dong!
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.671045] xhci_hcd
>> 0000:00:14.0: xHCI host not responding to stop endpoint command.
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.671679] xhci_hcd
>> 0000:00:14.0: Assuming host is dying, halting host.
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.672317] xhci_hcd
>> 0000:00:14.0: // Halt the HC
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.672950] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 1, ep index 0
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.673602] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 1, ep index 2
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.674246] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 1, ep index 3
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.674900] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 2, ep index 0
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.676020] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 2, ep index 2
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.677146] xhci_hcd
>> 0000:00:14.0: get port status, actual port 2 status  = 0x1203
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.678271] xhci_hcd
>> 0000:00:14.0: Get port status returned 0x203
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.679400] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 3, ep index 0
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.680567] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 3, ep index 2
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.681736] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 3, ep index 6
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.682908] xhci_hcd
>> 0000:00:14.0: set port reset, actual port 2 status  = 0x1311
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.684078] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 3, ep index 8
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.684776] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 6, ep index 0
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.685464] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 6, ep index 2
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.686158] Bluetooth:
>> hci0 urb ffff88025b997b40 failed to resubmit (22)
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.686863] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 6, ep index 3
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.687576] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 6, ep index 4
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.688298] Bluetooth:
>> hci0 urb ffff88025b997240 failed to resubmit (22)
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.689024] Bluetooth:
>> hci0 urb ffff88025b9973c0 failed to resubmit (22)
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.689752] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 6, ep index 5
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.690491] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 6, ep index 6
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.691239] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 6, ep index 7
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.691983] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 6, ep index 8
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.692725] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 7, ep index 0
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.693470] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 7, ep index 2
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.694214] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 7, ep index 4
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.694981] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 7, ep index 6
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.695728] xhci_hcd
>> 0000:00:14.0: Killing URBs for slot ID 7, ep index 8
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.696477] xhci_hcd
>> 0000:00:14.0: Calling usb_hc_died()
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.697229] xhci_hcd
>> 0000:00:14.0: HC died; cleaning up
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.697985] xhci_hcd
>> 0000:00:14.0: xHCI host controller is dead.
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.698750] xhci_hcd
>> 0000:00:14.0: Command timeout on stopped ring
>> Jan 18 14:04:11 devin-MacBookPro kernel: [ 9125.699521] xhci_hcd
>> 0000:00:14.0: Turn aborted command ffff88025c227350 to no-op
>>
>>
>



-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux