Linux: i3c: master: svc: Prevent IRQ storm from false SLVSTART on NPCM845
What fixes it
- 335f72b1f9bbcf0f4cc5a505443b15f1af563b4fLinuxCVE List
- 1effa3adfe53cb2bb28bf5640a676b791d5ab405LinuxCVE List
- 6.12.114LinuxCVE List
- 5.16LinuxCVE List
- 6.2LinuxCVE List
- 6.7LinuxCVE List
Show all 7 fixed versions
- 6.15LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
i3c: master: svc: Prevent IRQ storm from false SLVSTART on NPCM845
On NPCM845, when a target on the I3C bus gets stuck holding SDA low, the controller reports a false Master Request (MR) in-band interrupt event. The driver handles this by emitting a STOP condition to restore the bus.
However, the hardware quirk SVC_I3C_QUIRK_FALSE_SLVSTART indicates that emitting a STOP condition may spuriously set the SLVSTART interrupt status bit. In the Master Request case, this creates a feedback loop: the STOP triggers a new SLVSTART event, the IRQ handler fires again, the controller still reports an MR type, another STOP is emitted, and the cycle repeats indefinitely, resulting in an IRQ storm that can lock up the CPU.
Clear the SLVSTART status bit explicitly after emitting the STOP in the Master Request IBI handler when the SVC_I3C_QUIRK_FALSE_SLVSTART quirk is set. This breaks the feedback loop without affecting normal SLVSTART processing, which is already guarded in the top-level IRQ handler by checking that MSTATUS is in SLVREQ state.
Text from CVE List
Affected versions 17
- Linuxaffected: 1ea4653cff35c29d1dd0b14ad9c8245e7318f337 before 335f72b1f9bbcf0f4cc5a505443b15f1af563b4fCVE List
- Linuxaffected: 0430bf9bc1ac068c8b8c540eb93e5751872efc51 before e9b139c4684ed8593a0b779ca02ea05f460b2eecCVE List
- Linuxaffected: 0430bf9bc1ac068c8b8c540eb93e5751872efc51 before 1effa3adfe53cb2bb28bf5640a676b791d5ab405CVE List
- Linuxaffected: 30748ce7e156f221fb91689b338a0d7df77b732aCVE List
- Linuxaffected: f2985a1de6f53abbc42c7a696ee6ba8bdecc9426CVE List
- Linuxaffected: 0541822045ae043d62c941ca31fa76871e436b5eCVE List
- Linuxaffected: d231fb443d8d4042f0dd705b93beba8c916a7344CVE List
- Linuxaffected: 6.12.31 before 6.12.114CVE List
- Linuxaffected: 5.15.185 before 5.16CVE List
- Linuxaffected: 6.1.141 before 6.2CVE List
- Linuxaffected: 6.6.93 before 6.7CVE List
- Linuxaffected: 6.14.9 before 6.15CVE List
- Linuxaffected: 6.15CVE List
- Linuxunaffected: all versions before 6.15CVE List
- Linuxunaffected: 6.12.114 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2CVE List