On Tue, 30 Dec 2025 01:35:18 +0400 Ivan Malov <[email protected]> wrote:
> The series provides various fixes, primarily for Medford4 support. > It also fixes a legacy flow control bug; due to hardware constraints > in the fix, SFN7xxx NICs are now marked as deprecated. > > Andy Moreton (1): > common/sfc_efx/base: count Rx TRUNC ERR as CRC errors on X4 > > Ivan Malov (8): > doc: remove support for AMD Solarflare SFN7xxx family boards > common/sfc_efx/base: fix flow control setting on legacy MCDI > common/sfc_efx/base: fix indication of requestable FEC flags > common/sfc_efx/base: define mask for pause mode capabilities > net/sfc: avoid speed reset when setting FEC in started state > net/sfc: rework the capability check that is done on FEC set > net/sfc: drop AUTO from FEC capabilities and fix the comment > net/sfc: fix reporting status of autonegotiation to the user > > doc/guides/nics/sfc_efx.rst | 14 --- > doc/guides/rel_notes/release_26_03.rst | 4 + > drivers/common/sfc_efx/base/ef10_ev.c | 41 +++++-- > drivers/common/sfc_efx/base/ef10_mac.c | 35 ++++-- > drivers/common/sfc_efx/base/ef10_nic.c | 57 +++++----- > drivers/common/sfc_efx/base/efx.h | 1 + > drivers/common/sfc_efx/base/efx_np.c | 2 +- > drivers/net/sfc/sfc.h | 2 +- > drivers/net/sfc/sfc_ethdev.c | 141 +++++++++++++++---------- > drivers/net/sfc/sfc_ev.c | 7 +- > drivers/net/sfc/sfc_port.c | 8 +- > drivers/net/sfc/sfc_repr.c | 2 +- > 12 files changed, 193 insertions(+), 121 deletions(-) > AI code review spotted one minor thing but was overall quite happy. # DPDK Solarflare Driver Patch Series Review **Patches Reviewed:** 0009-0017 (9 patches) **Author:** Ivan Malov <[email protected]> (with contribution from Andy Moreton) **Review Date:** January 13, 2026 --- ## Overall Assessment This patch series is **generally well-prepared** and follows DPDK coding standards. The patches address a mix of documentation updates, bug fixes in the sfc_efx base library, and improvements to FEC/flow control handling in the net/sfc driver. Most patches are suitable for merging with only minor observations. --- ## Patch-by-Patch Review ### Patch 0009: doc: remove support for AMD Solarflare SFN7xxx family boards **Status:** ✅ Ready | Check | Result | |-------|--------| | Subject ≤60 chars | ✅ 59 characters | | Subject format | ✅ Correct `doc:` prefix, lowercase | | Body format | ✅ Doesn't start with "It", proper wrapping | | Signed-off-by | ✅ Present | | Release notes | ✅ Updated in `release_26_03.rst` | **Observations:** Clean documentation removal patch. Properly updates both the NIC guide and release notes. --- ### Patch 0010: common/sfc_efx/base: fix flow control setting on legacy MCDI **Status:** ✅ Ready | Check | Result | |-------|--------| | Subject ≤60 chars | ✅ 60 characters (at limit) | | Subject format | ✅ Correct prefix, lowercase | | Fixes tag | ✅ `e7cd430c864f` with correct format | | Cc: stable | ✅ Present | | Tag order | ✅ Fixes, Cc, blank line, Signed-off-by, Reviewed-by | **Code Review:** - Uses explicit comparison `!= B_FALSE` (line 46) — acceptable, though `== B_TRUE` might be slightly clearer - Properly adds new fail label and updates error handling - Switch statement formatting is correct --- ### Patch 0011: common/sfc_efx/base: fix indication of requestable FEC flags **Status:** ✅ Ready | Check | Result | |-------|--------| | Subject ≤60 chars | ✅ 59 characters | | Fixes tag | ✅ `a90549f527eb` present | | Cc: stable | ✅ Present | | Tag order | ✅ Correct | **Code Review:** - Refactors code to move FEC capability bits initialization to `ef10_nic_probe()` - Clean removal of `goto skip_phy_props` pattern - Uses explicit comparison `== B_FALSE` --- ### Patch 0012: common/sfc_efx/base: define mask for pause mode capabilities **Status:** ✅ Ready | Check | Result | |-------|--------| | Subject ≤60 chars | ✅ 58 characters | | Subject format | ✅ Correct | | Signed-off-by | ✅ Present | **Observations:** Simple macro addition. No Fixes tag is appropriate since this is a new feature/enhancement required by subsequent patches. --- ### Patch 0013: common/sfc_efx/base: count Rx TRUNC ERR as CRC errors on X4 **Status:** ⚠️ Minor Question | Check | Result | |-------|--------| | Subject ≤60 chars | ✅ 57 characters | | Subject format | ✅ Uses correct `Rx` capitalization | | Signed-off-by | ✅ Two signers (appropriate for co-authored work) | **Observations:** - **Question:** Should this have a `Fixes:` tag and `Cc: [email protected]`? The commit message describes a workaround for X4 hardware behavior, which could be considered a bug fix for X4 support. If the X4 family was added in a specific commit, a Fixes tag referencing that commit would be appropriate. - Code correctly duplicates the X4-specific handling in both `ef10_ev_rx_packed_stream` and `ef10_ev_rx` functions --- ### Patch 0014: net/sfc: avoid speed reset when setting FEC in started state **Status:** ✅ Ready | Check | Result | |-------|--------| | Subject ≤60 chars | ✅ 58 characters | | Fixes tag | ✅ `5efa8fc1cfc0` present | | Cc: stable | ✅ Present | | Dependencies | ✅ Uses `EFX_PHY_CAP_PAUSE_MASK` from patch 0012 | **Code Review:** - Correctly preserves pause capabilities while updating FEC settings - Proper dependency ordering within the series --- ### Patch 0015: net/sfc: rework the capability check that is done on FEC set **Status:** ✅ Ready | Check | Result | |-------|--------| | Subject ≤60 chars | ✅ 58 characters | | Fixes tag | ✅ `5efa8fc1cfc0` present | | Cc: stable | ✅ Present | | New includes | ✅ `<stdbool.h>` and `<rte_bitops.h>` added | **Code Review:** - Uses `bool` type appropriately - `if (!supported)` at line 156 is acceptable for actual bool types per DPDK guidelines - Uses `rte_popcount32()` — good use of DPDK utility function - Commit message includes helpful testpmd reproduction steps --- ### Patch 0016: net/sfc: drop AUTO from FEC capabilities and fix the comment **Status:** ✅ Ready | Check | Result | |-------|--------| | Subject ≤60 chars | ✅ 58 characters | | Fixes tags | ✅ Two Fixes tags (both appropriate) | | Cc: stable | ✅ Present | | Tag order | ✅ Correct | **Observations:** - Multiple Fixes tags are appropriate when a single patch addresses regressions from multiple commits - Updated comments improve code clarity --- ### Patch 0017: net/sfc: fix reporting status of autonegotiation to the user **Status:** ✅ Ready | Check | Result | |-------|--------| | Subject ≤60 chars | ✅ 58 characters | | Fixes tag | ✅ `886f8d8a05bf` present | | Cc: stable | ✅ Present | **Code Review:** - Function signature change is propagated to all call sites - Uses explicit comparison `!= 0` (good practice) - Comment in `sfc_ev.c` appropriately documents a potential race condition and explains the trade-off --- ## Summary | Severity | Count | Details | |----------|-------|---------| | **Error** | 0 | None found | | **Warning** | 1 | Patch 0013 may benefit from Fixes/Cc:stable tags | | **Info** | 0 | — | ### Series Dependencies The patches have proper internal dependencies: - Patch 0014 depends on patch 0012 (`EFX_PHY_CAP_PAUSE_MASK`) - The series should be applied in order ### Recommendation **The series is suitable for merging.** Consider adding `Fixes:` and `Cc: [email protected]` tags to patch 0013 if X4 support was added in a prior release and this constitutes a fix for that support.

