|WARNING| [8/8] net/ice: consolidate the sources list
dpdklab at iol.unh.edu
dpdklab at iol.unh.edu
Fri Aug 14 18:00:28 CEST 2026
Test-Label: ai-code-review
Test-Status: WARNING
https://dpdk.org/patch/167793
_AI Code Review_
=== Patch Review: series.patch (via Claude) ===
Review date: 2026-08-14
# DPDK Patch Review
## Patch Series Summary
This 8-patch series moves osdep files and meson.build files out of base code directories for Intel network drivers (e1000, fm10k, i40e, iavf, ice, idpf, ixgbe). The goal is to simplify base code update rules by ensuring only snapshot-imported C files remain in `base/` directories.
---
## PATCH 1/8: net/e1000: move editable files out of base folder
### Errors
**Missing `#include` path update in moved header (Error)**
In `e1000_osdep.h`, the `#include "e1000_logs.h"` line was changed from `#include "../e1000_logs.h"`, but all files that include `e1000_osdep.h` continue to use `#include "base/e1000_osdep.h"`. This is only correct if the compiler include path includes the parent directory.
Check: Do files like `em_rxtx.c` that do `#include "base/e1000_api.h"` (which itself includes `e1000_osdep.h`) work without an explicit `-I` path for the parent directory? If not, the `#include "e1000_logs.h"` in `e1000_osdep.h` should remain `#include "../e1000_logs.h"` OR files should be updated to `#include "e1000_osdep.h"` instead of `#include "base/e1000_osdep.h"`.
**BASE: Suggested fix for patch correctness:**
- Either: Update all base headers to `#include "../e1000_osdep.h"` (one level up from `base/`)
- Or: Verify that meson.build sets `include_directories('.')` so that includes from `base/` can reach parent-level headers
- Or: Change includes in base headers to use relative path `#include "../e1000_osdep.h"`
### Warnings
**File relocation without include path verification (Warning)**
The patch moves `e1000_osdep.h` from `base/` to parent directory and updates its internal includes, but does not show whether:
1. The meson.build sets up include paths correctly for base code to find the moved header
2. Whether base code headers that `#include "e1000_osdep.h"` have been updated (they are not shown in the patch)
Suggest: Verify that base code headers can find the relocated `e1000_osdep.h` without compilation errors. This likely requires either an include path adjustment or updating base headers to use `#include "../e1000_osdep.h"`.
---
## PATCH 2/8: net/fm10k: move editable files out of base folder
### Errors
**Same include path issue as PATCH 1 (Error)**
`fm10k_osdep.h` moved to parent directory, changes `#include "../fm10k_logs.h"` to `#include "fm10k_logs.h"`, but base code headers likely still reference it as `#include "fm10k_osdep.h"` (expecting it in the same directory as the including header). Verify that base headers can find the relocated file.
---
## PATCH 3/8: net/i40e: move editable files out of base folder
### Errors
**Same include path issue as PATCH 1 (Error)**
`i40e_osdep.h` moved to parent directory, changes internal includes, but base code headers that include it are not updated in the patch. Verify compilation succeeds.
---
## PATCH 4/8: net/iavf: move editable files out of base folder
### Errors
**File rename without corresponding include updates (Error)**
The patch renames `base/iavf_impl.c` to `iavf_osdep.c` and moves `base/iavf_osdep.h` to `iavf_osdep.h`. The meson.build correctly updates the source list to `'iavf_osdep.c'`, but there is no verification that:
1. Files that previously included `"base/iavf_osdep.h"` are updated
2. Any internal references to `iavf_impl.c` symbols are still resolvable
**Same include path issue as PATCH 1 (Error)**
`iavf_osdep.h` moved to parent directory without shown updates to base headers that include it.
---
## PATCH 5/8: net/ice: move editable files out of base folder
### Errors
**Same include path issue as PATCH 1 (Error)**
`ice_osdep.h` moved to parent directory with internal include path changes, but no updates shown for base code headers that reference it.
### Warnings
**Meson variable naming (Warning)**
The patch introduces `base_error_cflags` as a new variable. This is correct, but differs from the original `error_cflags` name used in the deleted `base/meson.build`. While functional, the rename is not explained and may be unintentional.
Suggest: If renaming is intentional, consider a brief note. If not, keep the original `error_cflags` name for consistency.
---
## PATCH 6/8: net/idpf: move editable files out of base folder
### Errors
**Same include path issue as PATCH 1 (Error)**
`idpf_osdep.h` moved to parent directory without verification that base code and dependent headers (cpfl_actions.h, cpfl_controlq.h) can find it.
**Files shown updating includes (cpfl_actions.h, cpfl_controlq.h) are NOT in the idpf driver directory**
The patch shows changes to:
- `drivers/net/intel/cpfl/cpfl_actions.h`
- `drivers/net/intel/cpfl/cpfl_controlq.h`
These files are in the **cpfl** driver, not the **idpf** driver. Moving `idpf_osdep.h` from `drivers/net/intel/idpf/base/` to `drivers/net/intel/idpf/` means cpfl's include of `#include "idpf_osdep.h"` will FAIL -- it is looking for the header in a different driver's directory.
**Correct approach:** cpfl should use `#include "../idpf/idpf_osdep.h"` if idpf_osdep.h is shared, OR idpf_osdep.h should remain in a location both drivers can reach, OR the include path for cpfl must be adjusted to add `drivers/net/intel/idpf` to its include directories.
**This is a compilation breakage.**
---
## PATCH 7/8: net/ixgbe: move editable files out of base folder
### Errors
**Include path updates in source files assume header is in base/ (Error)**
The patch changes multiple includes in `ixgbe_ethdev.c` and `ixgbe_flow.c` from:
```c
#include "base/ixgbe_api.h"
```
to:
```c
#include "ixgbe_api.h"
```
BUT `ixgbe_api.h` is still in `base/` directory (it is base code, not moved). This will cause compilation failure -- the source files are looking for base headers in the parent directory where they do not exist.
**The patch description says it is moving `ixgbe_osdep.h` out of base/, but it ALSO changes includes of base code headers that were NOT moved.** This is incorrect.
**Correct approach:**
- Only change the include of `ixgbe_osdep.h` from `#include "base/ixgbe_osdep.h"` to `#include "ixgbe_osdep.h"`
- Leave all other base header includes as `#include "base/..."` because those headers are still in `base/`
### Info
The patch removes the note from README about `ixgbe_osdep.c` being editable, but I do not see `ixgbe_osdep.c` listed in the base sources -- was it already removed or never existed?
---
## PATCH 8/8: net/ice: consolidate the sources list
### No Issues Found
This patch simply moves DCF source file entries from a later `sources +=` assignment into the initial `sources = files(...)` block. No functional change, improves readability. No errors.
---
## Summary of Findings by Patch
| Patch | Errors | Warnings | Info |
|-------|--------|----------|------|
| 1/8 | 1 | 1 | 0 |
| 2/8 | 1 | 0 | 0 |
| 3/8 | 1 | 0 | 0 |
| 4/8 | 2 | 0 | 0 |
| 5/8 | 1 | 1 | 0 |
| 6/8 | 2 | 0 | 0 |
| 7/8 | 1 | 0 | 1 |
| 8/8 | 0 | 0 | 0 |
**Total: 9 Errors, 2 Warnings, 1 Info**
---
## Recommendations
1. **Verify include path handling**: For all patches moving `*_osdep.h` files, verify that base code headers can find the relocated header. This likely requires:
- Updating base headers to use `#include "../driver_osdep.h"`, OR
- Ensuring meson.build sets include paths so base code can find parent directory headers
2. **Fix PATCH 6 cross-driver include**: cpfl driver cannot include `idpf_osdep.h` after it moves to idpf parent directory without a relative path or include directory adjustment.
3. **Fix PATCH 7 incorrect include changes**: Revert changes to includes of base code headers (`ixgbe_api.h`, `ixgbe_common.h`, `ixgbe_type.h`, etc.) -- these files are still in `base/` and the includes should remain `#include "base/..."`.
4. **Test compilation**: Build each patch individually to verify no include errors.
More information about the test-report
mailing list