|SUCCESS| net/iavf: fix interrupt callback race on close
dpdklab at iol.unh.edu
dpdklab at iol.unh.edu
Wed Oct 21 00:30:17 CEST 2026
Test-Label: ai-code-review
Test-Status: SUCCESS
https://dpdk.org/patch/171276
_AI Code Review_
=== Patch Review: series.patch (via Claude) ===
Review date: 2026-10-20
# DPDK Patch Review
## ERRORS
None.
## WARNINGS
None.
## INFO
**Interrupt unregister pattern (pre-existing)**
Line 3182 and 3279 (after patch):
```c
rte_intr_callback_unregister_sync(pci_dev->intr_handle,
iavf_dev_interrupt_handler, eth_dev);
```
The patch correctly upgrades from `rte_intr_callback_unregister()` to `rte_intr_callback_unregister_sync()` to fix the race condition described in the commit message. This is the same pattern used by `ice_dev_close()` and is appropriate here.
The correctness analysis in the commit message is sound:
- The non-sync variant can return `-EAGAIN` when the interrupt thread is executing the callback, leaving the handler registered
- A subsequent `rte_eth_dev_release_port()` sets `dev->data` to NULL while the handler may still access it (use-after-free)
- The sync variant prevents this by waiting for the running callback to complete
- No deadlock risk exists because `iavf_dev_interrupt_handler()` delegates device events to the `iavf-event` thread rather than calling close/init itself
**No other issues identified.** The patch is a straightforward race-condition fix with clear evidence and correct implementation.
Review-Result: CLEAN
More information about the test-report
mailing list