Description
In the Linux kernel, the following vulnerability has been resolved: usb: xhci: Prevent interrupt storm on host controller error (HCE) The xHCI controller reports a Host Controller Error (HCE) in UAS Storage Device plug/unplug scenarios on Android devices. HCE is checked in xhci_irq() function and causes an interrupt storm (since the interrupt isn’t cleared), leading to severe system-level faults. When the xHC controller reports HCE in the interrupt handler, the driver only logs a warning and assumes xHC activity will stop as stated in xHCI specification. An interrupt storm does however continue on some hosts even after HCE, and only ceases after manually disabling xHC interrupt and stopping the controller by calling xhci_halt(). Add xhci_halt() to xhci_irq() function where STS_HCE status is checked, mirroring the existing error handling pattern used for STS_FATAL errors. This only fixes the interrupt storm. Proper HCE recovery requires resetting and re-initializing the xHC.
Product status
2a25e66d676dfb9b018abd503deed3d38a892dec (git) before b2dd9abf8c06cfcbcf242321fd54ae51a4807705
2a25e66d676dfb9b018abd503deed3d38a892dec (git) before 6f91f3f087194c114d6d8ea4591b850bb00672f8
2a25e66d676dfb9b018abd503deed3d38a892dec (git) before cd41e0d1df8fcf5eae294657da52b50d1ce03246
2a25e66d676dfb9b018abd503deed3d38a892dec (git) before 09ff0099c6cf148ff1f7053b5b6c84beb1c2ef8d
2a25e66d676dfb9b018abd503deed3d38a892dec (git) before d6d5febd12452b7fd951fdd15c3ec262f01901a4
6.2
Any version before 6.2
6.6.130 (semver)
6.12.78 (semver)
6.18.19 (semver)
6.19.9 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/b2dd9abf8c06cfcbcf242321fd54ae51a4807705
git.kernel.org/...c/6f91f3f087194c114d6d8ea4591b850bb00672f8
git.kernel.org/...c/cd41e0d1df8fcf5eae294657da52b50d1ce03246
git.kernel.org/...c/09ff0099c6cf148ff1f7053b5b6c84beb1c2ef8d
git.kernel.org/...c/d6d5febd12452b7fd951fdd15c3ec262f01901a4