net: mana: Reserve extra CQ slot for the fence completion CQE
- 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 6.6.158, 6.12.111, 6.18.53, 7.2.7
- 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: mana: Reserve extra CQ slot for the fence completion CQE The RX completion queue is sized to hold exactly one CQE per posted RX WQE. MANA_FENCE_RQ makes hardware post an additional CQE_RX_OBJECT_FENCE after the packet CQEs. The current sizing reserves no extra slot for it and in rare cases, CQ has no guaranteed slot for the fence CQE when it is full of packet CQEs. This can lead to dropping the fence completion while the driver waits holding RTNL lock throughout the timeout duration. Reserve one extra CQE slot for CQE_RX_OBJECT_FENCE. mana_gd_alloc_memory() requires queue_size to be a power-of-two and at least MANA_PAGE_SIZE; the reservation pushes cq_size past a power-of-two, so round up the CQ size in mana_create_rxq().
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 6cc74443a7732d7e93bee3d0c3704a22cc7274d9 · fixed in f7d76b84b9206eef4320d8ab715d65f944535acf; From 6cc74443a7732d7e93bee3d0c3704a22cc7274d9 · fixed in 62eb52454afcc1d390b8624c5d1ddc92cf382f39; From 6cc74443a7732d7e93bee3d0c3704a22cc7274d9 · fixed in 1e43c407624d2111c19d4d8ffe9b2191a0ec42de; From 6cc74443a7732d7e93bee3d0c3704a22cc7274d9 · fixed in 6c739cb89ebd6cf225dac46d2721e11927a7ead4; From 6cc74443a7732d7e93bee3d0c3704a22cc7274d9 · fixed in 80dd7e754b3aa9637a0758ad93fa209f9650ec48
- Linux Linux
5.17
- KernelLinux
From 5.17.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53; From 6.19.0 · fixed in 7.2.7