CVE-2026-74745: eth: bnxt: avoid deadlock when canceling IRQ affinity notifier
In the Linux kernel, the following vulnerability has been resolved:
eth: bnxt: avoid deadlock when canceling IRQ affinity notifier
Unregistering IRQ affinity notifiers waits for the callback synchronously. bnxt takes the netdev instance lock in the notifier (to restart the queue) and cancels the work under the same lock. This may obviously deadlock.
Move the restart to the async service task. The queue restart isn't super time sensitive. Store the new TPH tag, schedule the task. Safely canceling the service task is already ironed out.
In bnxtrequestirq() the order of registering notifier, affinity and initial TPH programming has to be inverted. I think it was racy previously since user may trigger an update as soon as notifier is installed.
There's a small known gap - if pcietphgetcpust() fails at init and the target tag is 0 we may miss programming the entry. This does not seem worth fixing, the code has skip-on-failure all over the place, anyway.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this deadlock?
Systems using the Linux kernel bnxt Ethernet driver are relevant. The issue is tied to cancellation of IRQ affinity notifiers while the driver holds the netdev instance lock.
What condition triggers the problem?
The deadlock can occur when an IRQ affinity notifier is unregistered or canceled synchronously while its callback needs the same netdev instance lock to restart a queue. IRQ affinity updates can also race with notifier registration and initial TPH programming.
What is the mitigation if the fix cannot be deployed immediately?
The provided data does not specify a configuration workaround. The referenced fixes move queue restart handling to the asynchronous service task, avoiding synchronous notifier cancellation under the netdev lock.