Hi. I'm a user of another distro (gentoo), and found this bug while googling for a problem I'm having. I'm using a realtek-based USB3 to RJ45 gigabit adapter. This plugs directly into my laptop (not any sort of hub as with the DELL hubs above), which is a Toshiba Radius P20W-C-103, skylake based, with the following controller: ``` 00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21) ``` I am experiencing this on 4.9.79-r1, and also 4.14.22. When I plug the device in, unless I disable power management on USB hubs 3 and 4, I get errors saying 'root hub lost power or was reset'. However, if I disable PM using powertop, I get the device to work seemingly well. But, as soon as I start heavy transfers (in my case distributed compile), the network device stops responding The error messages that I'm receiving are very similar to what is posted above. This is the device coming up: ``` Feb 26 20:17:09 nizuc kernel: usb usb3: root hub lost power or was reset Feb 26 20:17:09 nizuc kernel: usb usb4: root hub lost power or was reset Feb 26 20:17:41 nizuc kernel: usb 4-1: new SuperSpeed USB device number 2 using xhci_hcd Feb 26 20:17:41 nizuc kernel: usb 4-1: New USB device found, idVendor=0bda, idProduct=8153 Feb 26 20:17:41 nizuc kernel: usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=6 Feb 26 20:17:41 nizuc kernel: usb 4-1: Product: USB 10/100/1000 LAN Feb 26 20:17:41 nizuc kernel: usb 4-1: Manufacturer: Realtek Feb 26 20:17:41 nizuc kernel: usb 4-1: SerialNumber: 000001 Feb 26 20:17:41 nizuc kernel: usb 4-1: reset SuperSpeed USB device number 2 using xhci_hcd Feb 26 20:17:41 nizuc NetworkManager[2049]: [1519676261.9009] manager: (eth0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/5) Feb 26 20:17:41 nizuc kernel: r8152 4-1:1.0 eth0: v1.09.9 Feb 26 20:17:42 nizuc mtp-probe[3673]: checking bus 4, device 2: "/sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/usb4/4-1" Feb 26 20:17:42 nizuc mtp-probe[3673]: bus: 4, device: 2 was not an MTP device Feb 26 20:17:42 nizuc upowerd[2168]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/usb4/4-1 Feb 26 20:17:42 nizuc systemd-udevd[3676]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable. Feb 26 20:17:42 nizuc kernel: r8152 4-1:1.0 enp1s0u1: renamed from eth0 Feb 26 20:17:42 nizuc NetworkManager[2049]: [1519676262.2645] device (eth0): interface index 4 renamed iface from 'eth0' to 'enp1s0u1' Feb 26 20:17:42 nizuc kernel: IPv6: ADDRCONF(NETDEV_UP): enp1s0u1: link is not ready Feb 26 20:17:42 nizuc NetworkManager[2049]: [1519676262.2829] device (enp1s0u1): state change: unmanaged -> unavailable (reason 'managed', internal state 'external') Feb 26 20:17:42 nizuc upowerd[2168]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/usb4/4-1/4-1:1.0 Feb 26 20:17:42 nizuc kernel: IPv6: ADDRCONF(NETDEV_UP): enp1s0u1: link is not ready Feb 26 20:17:46 nizuc kernel: r8152 4-1:1.0 enp1s0u1: carrier on Feb 26 20:17:46 nizuc kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp1s0u1: link becomes ready Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3331] device (enp1s0u1): link connected Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3415] device (enp1s0u1): state change: unavailable -> disconnected (reason 'carrier-changed', internal state> Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3443] policy: auto-activating connection 'Wired connection 1' Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3452] device (enp1s0u1): Activation: starting connection 'Wired connection 1' (fd5b488a-66f7-3ec5-a6d0-b43c8> Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3454] device (enp1s0u1): state change: disconnected -> prepare (reason 'none', internal state 'managed') Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3458] device (enp1s0u1): state change: prepare -> config (reason 'none', internal state 'managed') Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3462] device (enp1s0u1): state change: config -> ip-config (reason 'none', internal state 'managed') Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3528] device (enp1s0u1): state change: ip-config -> ip-check (reason 'none', internal state 'managed') Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3554] device (enp1s0u1): state change: ip-check -> secondaries (reason 'none', internal state 'managed') Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3557] device (enp1s0u1): state change: secondaries -> activated (reason 'none', internal state 'managed') Feb 26 20:17:46 nizuc NetworkManager[2049]: [1519676266.3563] device (enp1s0u1): Activation: successful, device activated. ``` but then, what look like the same TRB errors as mentioned in this thread (I could be wrong): ``` Feb 26 20:25:32 nizuc distccd[13928]: (dcc_r_token_int) got ARGV0000000f Feb 26 20:25:32 nizuc distccd[13928]: (dcc_r_token_string) got '-Wa,-mtune=i686' Feb 26 20:25:32 nizuc distccd[13928]: (dcc_r_argv) argv[22] = "-Wa,-mtune=i686" Feb 26 20:25:32 nizuc distccd[13928]: (dcc_r_token_int) got ARGV00000011 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: Looking for event-dma 000000020c8aea40 trb-start 000000020c8aea20 trb-end 000000020c8aea20 seg-start 000000020c8ae000 s> Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: Looking for event-dma 000000020c8aea50 trb-start 000000020c8aea20 trb-end 000000020c8aea20 seg-start 000000020c8ae000 s> Feb 26 20:25:32 nizuc distccd[14319]: (dcc_check_client) connection from 192.168.2.1:42290 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: Looking for event-dma 000000020c8aea60 trb-start 000000020c8aea20 trb-end 000000020c8aea20 seg-start 000000020c8ae000 s> Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: Looking for event-dma 000000020c8aea70 trb-start 000000020c8aea20 trb-end 000000020c8aea20 seg-start 000000020c8ae000 s> Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: Looking for event-dma 000000020c8aea80 trb-start 000000020c8aea20 trb-end 000000020c8aea20 seg-start 000000020c8ae000 s> Feb 26 20:25:32 nizuc distccd[14110]: (dcc_check_client) connection from 192.168.2.1:42292 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: Looking for event-dma 000000020c8aea90 trb-start 000000020c8aea20 trb-end 000000020c8aea20 seg-start 000000020c8ae000 s> Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: Looking for event-dma 000000020c8aeaa0 trb-start 000000020c8aea20 trb-end 000000020c8aea20 seg-start 000000020c8ae000 s> Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 Feb 26 20:25:32 nizuc kernel: xhci_hcd 0000:01:00.0: Looking for event-dma 000000020c8aeab0 trb-start 000000020c8aea20 trb-end 000000020c8aea20 seg-start 000000020c8ae000 s> Feb 26 20:25:32 nizuc distccd[13928]: compile from check_addrinfo.c to check_addrinfo.oS Feb 26 20:25:32 nizuc distccd[14319]: compile from check_dns_packet.c to check_dns_packet.oS Feb 26 20:25:32 nizuc distccd[14110]: compile from check_hostent.c to check_hostent.oS Feb 26 20:26:23 nizuc kernel: r8152 4-1:1.0 enp1s0u1: Stop submitting intr, status -71 Feb 26 20:26:24 nizuc kernel: xhci_hcd 0000:01:00.0: Cannot set link state. Feb 26 20:26:24 nizuc kernel: usb usb4-port1: cannot disable (err = -32) Feb 26 20:26:24 nizuc kernel: usb 4-1: USB disconnect, device number 2 Feb 26 20:26:26 nizuc kernel: r8152 4-1:1.0 enp1s0u1: linking down Feb 26 20:26:26 nizuc NetworkManager[2049]: [1519676786.9555] device (enp1s0u1): state change: activated -> unmanaged (reason 'removed', internal state 'removed') ``` Following the link to the patch given above, Kai-Heng Feng, I can see the thread continues, with the following feedback: > > >> Excuse me. I don't understand why this patch is for specific USB nic rather than > > xHCI. > > >> It seems to make the specific USB nic working and the other ones keeping error. > > > > > > Well, are we sure that the device being in the TB16 dock doesn't > > > contribute to the issue as well? > > Previous version of this patch checked the parent device to ensure it was in TB16. > I believe there was negative feedback to that approach, which prompted the discussion > to check bcdDevice and iSerialNumber with all vendors involved. > > If it's still desirable to analyze parentage tree, I suppose bcdDevice, iSerialNumber > and parent's USB device VID/PID can be analyzed all at the same time. > > > > > This is what vendors concluded for now. The very same NIC on WD15 doesn’t > > have the issue. > > And just so it's extra clear to everyone on this list - WD15 has different bcdDevice > iSerialNumber, and doesn't connect to ASMedia host controller. From reading this, I understand that this may not be specific to the DELL dock. Can somebody confirm this? Should I try and adjust the patch so that it works for my USB controller (the patch, as mentioned above, checks for the USB Ids of the DELL dock - I don't think it will work for my laptop). Or should I perhaps try using ethtool as above, to try and disable the checksum offloading and see if that makes a difference? I apologise in advance if this is unrelated.