From: Stephen Hemminger <stephen@networkplumber.org>
To: Ivan Malov <ivan.malov@arknetworks.am>
Cc: dev@dpdk.org, Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
Andy Moreton <andy.moreton@amd.com>,
Pieter Jansen Van Vuuren <pieter.jansen-van-vuuren@amd.com>,
Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am>
Subject: Re: [PATCH 0/9] net/sfc: SFN7xxx deprecation and Medford fixes
Date: Tue, 13 Jan 2026 07:21:39 -0800 [thread overview]
Message-ID: <20260113072139.073e7d74@phoenix.local> (raw)
In-Reply-To: <20251229213527.37907-1-ivan.malov@arknetworks.am>
On Tue, 30 Dec 2025 01:35:18 +0400
Ivan Malov <ivan.malov@arknetworks.am> 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 <ivan.malov@arknetworks.am> (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: stable@dpdk.org`? 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: stable@dpdk.org` tags to patch 0013 if X4 support was added in a prior release and this constitutes a fix for that support.
prev parent reply other threads:[~2026-01-13 15:21 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-29 21:35 [PATCH 0/9] net/sfc: SFN7xxx deprecation and Medford fixes Ivan Malov
2025-12-29 21:35 ` [PATCH 1/9] doc: remove support for AMD Solarflare SFN7xxx family boards Ivan Malov
2026-02-01 20:17 ` Thomas Monjalon
2026-02-02 13:51 ` Thomas Monjalon
2026-02-02 14:05 ` Ivan Malov
2026-02-02 16:31 ` Thomas Monjalon
2026-02-02 16:38 ` Ivan Malov
2026-02-02 17:06 ` Thomas Monjalon
2025-12-29 21:35 ` [PATCH 2/9] common/sfc_efx/base: fix flow control setting on legacy MCDI Ivan Malov
2025-12-29 21:35 ` [PATCH 3/9] common/sfc_efx/base: fix indication of requestable FEC flags Ivan Malov
2025-12-29 21:35 ` [PATCH 4/9] common/sfc_efx/base: define mask for pause mode capabilities Ivan Malov
2025-12-29 21:35 ` [PATCH 5/9] common/sfc_efx/base: count Rx TRUNC ERR as CRC errors on X4 Ivan Malov
2025-12-29 21:35 ` [PATCH 6/9] net/sfc: avoid speed reset when setting FEC in started state Ivan Malov
2025-12-29 21:35 ` [PATCH 7/9] net/sfc: rework the capability check that is done on FEC set Ivan Malov
2025-12-29 21:35 ` [PATCH 8/9] net/sfc: drop AUTO from FEC capabilities and fix the comment Ivan Malov
2025-12-29 21:35 ` [PATCH 9/9] net/sfc: fix reporting status of autonegotiation to the user Ivan Malov
2025-12-31 19:13 ` [PATCH 0/9] net/sfc: SFN7xxx deprecation and Medford fixes Stephen Hemminger
2026-01-13 15:21 ` Stephen Hemminger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260113072139.073e7d74@phoenix.local \
--to=stephen@networkplumber.org \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=andy.moreton@amd.com \
--cc=dev@dpdk.org \
--cc=ivan.malov@arknetworks.am \
--cc=pieter.jansen-van-vuuren@amd.com \
--cc=viacheslav.galaktionov@arknetworks.am \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox