|WARNING| [26.11] net/mlx5: remove versioned symbols aliases

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Mon Jul 13 13:40:42 CEST 2026


Test-Label: ai-code-review
Test-Status: WARNING
https://dpdk.org/patch/166731

_AI Code Review_

=== Patch Review: series.patch (via Claude) ===
Review date: 2026-07-13

# DPDK Patch Review

## Patch Summary
This patch removes versioned symbol aliases for four functions in the mlx5 PMD after an ABI version bump, simplifying the code by eliminating the experimental-to-stable transition scaffolding.

---

## Findings

### Errors

None identified.

### Warnings

**1. Release notes missing for ABI change**

This patch changes the exported symbol structure (removes `use_function_versioning` and versioned symbol implementations). While it's a cleanup after an ABI bump, it should still be documented in the release notes because it affects the symbol table and ABI compatibility expectations.

**Suggested fix:**
Add a note in `doc/guides/rel_notes/release_26_11.rst`:
```rst
* **net/mlx5: Cleaned up versioned symbols after ABI bump.**

  Removed versioned symbol aliases for ``rte_pmd_mlx5_driver_event_cb_register``,
  ``rte_pmd_mlx5_driver_event_cb_unregister``, ``rte_pmd_mlx5_enable_steering``,
  and ``rte_pmd_mlx5_disable_steering`` functions.
```

---

**2. Missing blank line before function body**

In `drivers/net/mlx5/mlx5_driver_event.c` and `drivers/net/mlx5/mlx5_flow.c`, the new function definitions lack the required blank line between declarations and statements per DPDK style.

**Example from mlx5_driver_event.c:241:**
```c
/* Current (missing blank line) */
RTE_EXPORT_SYMBOL(rte_pmd_mlx5_driver_event_cb_register)
int
rte_pmd_mlx5_driver_event_cb_register(rte_pmd_mlx5_driver_event_callback_t cb, void *opaque)
{
	struct registered_cb *r;

/* Should be */
RTE_EXPORT_SYMBOL(rte_pmd_mlx5_driver_event_cb_register)
int
rte_pmd_mlx5_driver_event_cb_register(rte_pmd_mlx5_driver_event_callback_t cb, void *opaque)
{
	struct registered_cb *r;
```

Wait--actually reviewing the code more carefully: the blank line IS present after the opening brace before the first statement. The DPDK style guide states "Place an empty line between declarations and statements", which refers to the blank line INSIDE the function between `struct registered_cb *r;` and the next statement. That blank line is already present.

Upon re-examination, the formatting appears correct. **Disregard this item.**

---

### Info

**1. RTE_FINI placement**

In `mlx5_driver_event.c:292`, the `RTE_FINI` function definition has a space between the macro and the function name:
```c
RTE_FINI(rte_pmd_mlx5_driver_event_cb_cleanup) {
```

While this compiles correctly, DPDK style typically has the opening brace on its own line for function definitions. However, this pattern may be intentional for `RTE_FINI` macros which are destructors, not regular functions. The existing code uses this style, so this is likely acceptable.

---

## Summary

The patch correctly removes versioned symbol scaffolding after an ABI bump. The code changes are correct and properly structured. The only actionable item is adding a release note entry to document this ABI-related change.

**Recommendation:** Request addition of release notes entry before merging.
Traceback (most recent call last):
  File "/home-local/jenkins-local/jenkins-agent/workspace/AI-Code-Review/dpdk/devtools/ai/review-patch.py", line 1358, in <module>
    main()
  File "/home-local/jenkins-local/jenkins-agent/workspace/AI-Code-Review/dpdk/devtools/ai/review-patch.py", line 1354, in main
    sys.exit(classify_review(review_text, args.output_format))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home-local/jenkins-local/jenkins-agent/workspace/AI-Code-Review/dpdk/devtools/ai/review-patch.py", line 180, in classify_review
    elif curr_state == ReviewParseState.IN_ERROR and not re.match(
         ^^^^^^^^^^
UnboundLocalError: cannot access local variable 'curr_state' where it is not associated with a value


More information about the test-report mailing list