|WARNING| [2/2] net/mana: fix Rx interrupt enable failing on lock contention
dpdklab at iol.unh.edu
dpdklab at iol.unh.edu
Mon Nov 2 08:58:06 CET 2026
Test-Label: ai-code-review
Test-Status: WARNING
https://dpdk.org/patch/172334
_AI Code Review_
=== Patch Review: series.patch (via Claude) ===
Review date: 2026-11-02
# DPDK Patch Review
## Patch 1/2: net/mana: fix Rx interrupt vector beyond device count
### ERRORS
None.
### WARNINGS
None.
### INFO
None.
---
## Patch 2/2: net/mana: fix Rx interrupt enable failing on lock contention
### ERRORS
**Use of unchecked pthread_mutex_lock() return value:**
Line in question:
```c
pthread_mutex_lock(&priv->reset_ops_lock);
```
The `pthread_mutex_lock()` call can fail (e.g., if the mutex is invalid or the thread is interrupted), but the return value is not checked. The subsequent code assumes the lock was acquired successfully. If `pthread_mutex_lock()` fails, the device state check and unlock will operate without holding the lock, creating a race condition.
**Suggested fix:**
```c
static int
mana_reset_lock(struct mana_priv *priv)
{
int ret;
ret = pthread_mutex_lock(&priv->reset_ops_lock);
if (ret != 0)
return -ret;
if (rte_atomic_load_explicit(&priv->dev_state,
rte_memory_order_acquire) != MANA_DEV_ACTIVE) {
pthread_mutex_unlock(&priv->reset_ops_lock);
return -EBUSY;
}
return 0;
}
```
**Note:** This is a correctness issue because the function will proceed to check and unlock without actually holding the lock if `pthread_mutex_lock()` fails, which could lead to undefined behavior or data races.
### WARNINGS
None.
### INFO
None.
---
## Summary
**Patch 1/2:** Clean - correct logic for spreading queues over available completion vectors.
**Patch 2/2:** Contains one Error - missing error check on `pthread_mutex_lock()`. The patch correctly identifies and fixes the original lock contention issue (trylock causing spurious failures), but introduces a missing error check in the new code path.
Review-Result: ERROR
More information about the test-report
mailing list