Public bug reported:

BugLink: https://bugs.launchpad.net/bugs/2164898

[ Impact ]

We found a non-conformant behavior in USB4 Host Interface on some AMD
APUs. This behavior may lead to system hang when communicate using
transmit/receive rings to another USB4 router. Specifically, DMA path
setup and teardown cycles may cause the Tx ring to hang.

[ Fix ]

Cherry-pick the following patch, which is currently in linux-next:

1. thunderbolt: Add quirk to reset host interface on DMA path teardown
for AMD USB4 routers[1]

[ Test ]

0. Prepare 2 systems with the said USB4 Host I/F
1. Boot the new kernel
2. Connect USB4 ports on them with a USB4 cable, and start host-to-host USB4 
traffic between them through, say, iperf3.
3. Unplug the cable while transmission is happening. Either of these 2 systems 
shouldn't hang.

[ Where problems could occur ]

On disconnection of host-to-host communication (either USB4STREAM or
netdev-based code path), this makes matched AMD USB4 host interface
reset.

[ Additional Information ]

[1]
https://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt.git/commit/?h=next&id=f1de1fc5f632cdeae1f5c2984572ab710d4dfcaa

** Affects: linux-oem-7.0 (Ubuntu)
     Importance: Undecided
     Assignee: Leo Lin (0xff07)
         Status: New


** Tags: originate-from-2163135

** Changed in: linux-oem-7.0 (Ubuntu)
     Assignee: (unassigned) => Leo Lin (0xff07)

** Description changed:

+ BugLink: https://bugs.launchpad.net/bugs/2164898
+ 
  [ Impact ]
  
  We found a non-conformant behavior in USB4 Host Interface on some AMD
  APUs. This behavior may lead to system hang when communicate using
  transmit/receive rings to another USB4 router. Specifically, DMA path
  setup and teardown cycles may cause the Tx ring to hang.
  
  [ Fix ]
  
  Cherry-pick the following patch, which is currently in linux-next:
  
  1. thunderbolt: Add quirk to reset host interface on DMA path teardown
  for AMD USB4 routers[1]
  
  [ Test ]
  
  0. Prepare 2 systems with the said USB4 Host I/F
  1. Boot the new kernel
  2. Connect USB4 ports on them with a USB4 cable, and start host-to-host USB4 
traffic between them through, say, iperf3.
  3. Unplug the cable while transmission is happening. Either of these 2 
systems shouldn't hang.
  
- 
  [ Where problems could occur ]
  
  On disconnection of host-to-host communication (either USB4STREAM or
  netdev-based code path), this makes matched AMD USB4 host interface
  reset.
  
  [ Additional Information ]
  
  [1]
  
https://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt.git/commit/?h=next&id=f1de1fc5f632cdeae1f5c2984572ab710d4dfcaa

** Tags added: originate-from-2163135

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2164898

Title:
  [SRU] Add workaround for some non-conformant USB4 Host on some AMD
  platforms

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-oem-7.0/+bug/2164898/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to