CVE-2026-90274: coresight: etm4x: fix underflow for usage of (nrseqstate - 1)
In the Linux kernel, the following vulnerability has been resolved:
coresight: etm4x: fix underflow for usage of (nrseqstate - 1)
According to IHI006H Embedded Trace Macrocell Architecture Specification[0], TRCSEQEVR<n> is implemented only when TRCIDR5.NUMSEQSTATE is 0b100, in which case n ranges from 0 to 2; otherwise, TRCIDR5.NUMSEQSTATE is 0b000.
IOW, the number of usage in the initialisation or setting TRCSEQEVR<n> with drvdata->nrseqstate - 1 in the loop could make underflow issue when TRCIDR5.NUMSEQSTATE is 0b000.
Therefore, introduce nrseqctrls field and untie it from nrseqstate. As part of this introduce ETMMAXSEQTRANSITIONS macro and apply nrseqctrls and above macro to TRCSEQEVR<n> relevant fields setup.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Linux kernel systems using the CoreSight ETM4x driver are affected when the ETM reports TRCIDR5.NUMSEQSTATE as 0b000, meaning the TRCSEQEVR sequence-event registers are not implemented.
When can the underflow occur?
The underflow can occur during initialization or configuration of TRCSEQEVR<n> fields when the driver uses drvdata->nrseqstate - 1 in a loop despite NUMSEQSTATE being 0b000.