net: stmmac: xgmac2: disable RBUE in default RX interrupt mask
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.111, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: net: stmmac: xgmac2: disable RBUE in default RX interrupt mask Enabling the RX Buffer Unavailable (RBUE) interrupt is counterproductive and can trigger a MAC interrupt storm under heavy RX pressure. When the DMA runs out of RX descriptors it fires RBUE continuously until software refills the ring. However, RBUE is redundant: the normal RX completion interrupt (RIE) already triggers NAPI, which processes completed descriptors and refills the ring, causing the DMA to resume. The RBUE handler itself only sets handle_rx - the same outcome as RIE. On Agilex5 under heavy RX pressure, the MAC interrupt (which includes RBUE) was observed firing 1,821,811,555 times against only 2,618,627 actual RX completions - a ~695x ratio - confirming the severity of the storm. RBUE does not provide OOM recovery. If page_pool is exhausted, stmmac_rx_refill() cannot advance the DMA tail pointer, the DMA stays suspended, and RBUE fires again on the next NAPI completion - a storm with no forward progress. This patch trades that storm for a clean stall with the same RX outcome. Proper OOM recovery is a pre-existing gap outside the scope of this fix. Note: as a consequence of disabling RBUE, the rx_buf_unav_irq ethtool counter will always read 0 on XGMAC2 devices. This behaviour is already inconsistent across DWMAC core versions. Remove RBUE from XGMAC_DMA_INT_DEFAULT_EN and XGMAC_DMA_INT_DEFAULT_RX to prevent the interrupt storm while keeping normal RX handling intact.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From d6ddfacd95c79d43465d4a85dffb1c9beca343a9 · fixed in 8c9d57b5dc098b84631d0b3559c84c499ea2170a; From d6ddfacd95c79d43465d4a85dffb1c9beca343a9 · fixed in 7a10e54e42a8f73a8d731f5a281fc06bb41b9250; From d6ddfacd95c79d43465d4a85dffb1c9beca343a9 · fixed in 6b3b91433d5f4eae6865cdaa96f40cd67849e1f6; From d6ddfacd95c79d43465d4a85dffb1c9beca343a9 · fixed in 74dbb85a6a254b5fc1f265a6cd61b2ba9d9221d7; From d6ddfacd95c79d43465d4a85dffb1c9beca343a9 · fixed in 0b1a5d3647ce07c27a9fffefc11a8cbf7d7b25ce; From d6ddfacd95c79d43465d4a85dffb1c9beca343a9 · fixed in 87e2826ed2058747ddf014c082569a46bfadd96b; From d6ddfacd95c79d43465d4a85dffb1c9beca343a9 · fixed in d3265c19b35d036bba327b36b5366bee76b0157c
- Linux Linux
4.19
- KernelLinux
From 4.19.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53
References 7
git.kernel.org
- stable/c/8c9d57b5dc098b84631d0b3559c84c499ea2170a
- stable/c/7a10e54e42a8f73a8d731f5a281fc06bb41b9250
- stable/c/6b3b91433d5f4eae6865cdaa96f40cd67849e1f6
- stable/c/74dbb85a6a254b5fc1f265a6cd61b2ba9d9221d7
- stable/c/0b1a5d3647ce07c27a9fffefc11a8cbf7d7b25ce
- stable/c/87e2826ed2058747ddf014c082569a46bfadd96b
- stable/c/d3265c19b35d036bba327b36b5366bee76b0157c