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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
2a25e66d676dfb9b018abd503deed3d38a892dec to < b2dd9abf8c06cfcbcf242321fd54ae51a4807705affected2a25e66d676dfb9b018abd503deed3d38a892dec to < 6f91f3f087194c114d6d8ea4591b850bb00672f8affected2a25e66d676dfb9b018abd503deed3d38a892dec to < cd41e0d1df8fcf5eae294657da52b50d1ce03246affected2a25e66d676dfb9b018abd503deed3d38a892dec to < 09ff0099c6cf148ff1f7053b5b6c84beb1c2ef8daffected2a25e66d676dfb9b018abd503deed3d38a892dec to < d6d5febd12452b7fd951fdd15c3ec262f01901a4affected
Linux Linux
Default version status: affected
6.2affected0 to < 6.2unaffected6.6.130 to ≤ 6.6.*unaffected6.12.78 to ≤ 6.12.*unaffected6.18.19 to ≤ 6.18.*unaffected6.19.9 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b2dd9abf8c06cfcbcf242321fd54ae51a4807705 ↗
- https://git.kernel.org/stable/c/6f91f3f087194c114d6d8ea4591b850bb00672f8 ↗
- https://git.kernel.org/stable/c/cd41e0d1df8fcf5eae294657da52b50d1ce03246 ↗
- https://git.kernel.org/stable/c/09ff0099c6cf148ff1f7053b5b6c84beb1c2ef8d ↗
- https://git.kernel.org/stable/c/d6d5febd12452b7fd951fdd15c3ec262f01901a4 ↗