CVE-2026-74698: net/mlx5e: fix BQL reset on SQ re-activation
In the Linux kernel, the following vulnerability has been resolved:
net/mlx5e: fix BQL reset on SQ re-activation
mlx5equeuestart() deactivates and re-activates all channels but closes only the queue being restarted. mlx5eactivatetxqsq() then unconditionally calls netdevtxresetqueue(), zeroing the BQL counters of channels that kept their in-flight TX WQEs. The next completion then over-charges and trips the BUGON() in dqlcompleted():
kernel BUG at lib/dynamicqueuelimits.c:99! RIP: 0010:dqlcompleted+0x23d/0x280 Call Trace: <IRQ> mlx5epolltxcq+0x668/0xa60 mlx5enapipoll+0x5b/0x7b0 netrxaction+0x15a/0x580
Reset BQL only when the SQ has no bytes in flight (sq->cc == sq->pc).
In the case that reset is skipped, the outstanding WQEs will eventually complete and rebalance the dql. The dql->limit is carried across the reset.