|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