.../ethernet/stmicro/stmmac/dwxgmac2_core.c | 28 ++++++++------- .../net/ethernet/stmicro/stmmac/stmmac_tc.c | 35 +++++++++++++++++++ 2 files changed, 51 insertions(+), 12 deletions(-)
From: Nazim Amirul <muhammad.nazim.amirul.nazle.asmade@altera.com>
This series fixes three bugs in the stmmac L3/L4 TC flower filter
implementation for the XGMAC2 core. All three patches target net.
The L3/L4 filter match count statistics patch (originally patch 4/4)
has been split out and will be sent separately against net-next per
Andrew Lunn's review of v1.
Patch 1 fixes a register corruption bug in the L4 filter port configuration.
The XGMAC_L4_ADDR register holds both source and destination port match
values in a single register. The original code overwrites the entire register
when setting either field, silently erasing the other. This is fixed by
using a read-modify-write sequence.
Patch 2 fixes the basic flow match parser to properly reject unsupported
offload requests with -EOPNOTSUPP instead of silently accepting them.
Unsupported cases include partial protocol masks, non-IPv4 network proto,
and non-TCP/UDP transport proto. Extack messages are now included so users
know exactly which part of the match is unsupported. The -EOPNOTSUPP is
also now returned directly instead of using break, which was silently
discarding the error on FLOW_CLS_REPLACE operations.
Patch 3 fixes a stale action bug on filter deletion. When a filter entry
with a drop action is deleted, the action field was not reset, causing
it to persist and potentially affect subsequent filter configurations.
All three patches fix the original L3/L4 filter implementation introduced in
425eabddaf0f ("net: stmmac: Implement L3/L4 Filters using TC Flower").
Changes in v3:
- Patch 2: add extack messages to each -EOPNOTSUPP return (Jakub Kicinski)
- Patch 2: return -EOPNOTSUPP directly instead of break to avoid silently
reporting success on unsupported FLOW_CLS_REPLACE (Sashiko review)
Changes in v2:
- Split patch 4/4 (ethtool stats) out to net-next per Andrew Lunn's review
Nazim Amirul (3):
net: stmmac: xgmac: fix l4 filter port overwrite on register update
net: stmmac: fix l3l4 filter rejecting unsupported offload requests
net: stmmac: reset residual action in L3L4 filters on delete
.../ethernet/stmicro/stmmac/dwxgmac2_core.c | 28 ++++++++-------
.../net/ethernet/stmicro/stmmac/stmmac_tc.c | 35 +++++++++++++++++++
2 files changed, 51 insertions(+), 12 deletions(-)
--
2.43.7
On Mon, Jul 13, 2026 at 07:37:12PM -0700, muhammad.nazim.amirul.nazle.asmade@altera.com wrote:
> From: Nazim Amirul <muhammad.nazim.amirul.nazle.asmade@altera.com>
>
> This series fixes three bugs in the stmmac L3/L4 TC flower filter
> implementation for the XGMAC2 core. All three patches target net.
>
> The L3/L4 filter match count statistics patch (originally patch 4/4)
> has been split out and will be sent separately against net-next per
> Andrew Lunn's review of v1.
>
> Patch 1 fixes a register corruption bug in the L4 filter port configuration.
> The XGMAC_L4_ADDR register holds both source and destination port match
> values in a single register. The original code overwrites the entire register
> when setting either field, silently erasing the other. This is fixed by
> using a read-modify-write sequence.
>
> Patch 2 fixes the basic flow match parser to properly reject unsupported
> offload requests with -EOPNOTSUPP instead of silently accepting them.
> Unsupported cases include partial protocol masks, non-IPv4 network proto,
> and non-TCP/UDP transport proto. Extack messages are now included so users
> know exactly which part of the match is unsupported. The -EOPNOTSUPP is
> also now returned directly instead of using break, which was silently
> discarding the error on FLOW_CLS_REPLACE operations.
>
> Patch 3 fixes a stale action bug on filter deletion. When a filter entry
> with a drop action is deleted, the action field was not reset, causing
> it to persist and potentially affect subsequent filter configurations.
>
> All three patches fix the original L3/L4 filter implementation introduced in
> 425eabddaf0f ("net: stmmac: Implement L3/L4 Filters using TC Flower").
>
> Changes in v3:
> - Patch 2: add extack messages to each -EOPNOTSUPP return (Jakub Kicinski)
> - Patch 2: return -EOPNOTSUPP directly instead of break to avoid silently
> reporting success on unsupported FLOW_CLS_REPLACE (Sashiko review)
>
> Changes in v2:
> - Split patch 4/4 (ethtool stats) out to net-next per Andrew Lunn's review
>
> Nazim Amirul (3):
> net: stmmac: xgmac: fix l4 filter port overwrite on register update
> net: stmmac: fix l3l4 filter rejecting unsupported offload requests
> net: stmmac: reset residual action in L3L4 filters on delete
>
> .../ethernet/stmicro/stmmac/dwxgmac2_core.c | 28 ++++++++-------
> .../net/ethernet/stmicro/stmmac/stmmac_tc.c | 35 +++++++++++++++++++
> 2 files changed, 51 insertions(+), 12 deletions(-)
>
I think you probably should have done [PATCH RESEND] and it looks bit
funky on mailing list (double cover letter ?), but is fine on patchwork.
One nit:
- Not sure EOPNOTSUPP is optimal, as this is just wrong config and maybe
something like EINVAL would be better? But thats whatever
I have no means to test this now, but 1st patch seems to solve lot of
encountered issues.
For the series:
Reviewed-by: Jakub Raczynski <j.raczynski@samsung.com>
BR
Jakub Raczynski
From: Nazim Amirul <muhammad.nazim.amirul.nazle.asmade@altera.com>
This series fixes three bugs in the stmmac L3/L4 TC flower filter
implementation for the XGMAC2 core. All three patches target net.
The L3/L4 filter match count statistics patch (originally patch 4/4)
has been split out and will be sent separately against net-next per
Andrew Lunn's review of v1.
Patch 1 fixes a register corruption bug in the L4 filter port configuration.
The XGMAC_L4_ADDR register holds both source and destination port match
values in a single register. The original code overwrites the entire register
when setting either field, silently erasing the other. This is fixed by
using a read-modify-write sequence.
Patch 2 fixes the basic flow match parser to properly reject unsupported
offload requests with -EOPNOTSUPP instead of silently accepting them.
Unsupported cases include partial protocol masks, non-IPv4 network proto,
and non-TCP/UDP transport proto. Extack messages are now included so users
know exactly which part of the match is unsupported. The -EOPNOTSUPP is
also now returned directly instead of using break, which was silently
discarding the error on FLOW_CLS_REPLACE operations.
Patch 3 fixes a stale action bug on filter deletion. When a filter entry
with a drop action is deleted, the action field was not reset, causing
it to persist and potentially affect subsequent filter configurations.
All three patches fix the original L3/L4 filter implementation introduced in
425eabddaf0f ("net: stmmac: Implement L3/L4 Filters using TC Flower").
Changes in v3:
- Patch 2: add extack messages to each -EOPNOTSUPP return (Jakub Kicinski)
- Patch 2: return -EOPNOTSUPP directly instead of break to avoid silently
reporting success on unsupported FLOW_CLS_REPLACE (Sashiko review)
Changes in v2:
- Split patch 4/4 (ethtool stats) out to net-next per Andrew Lunn's review
Nazim Amirul (3):
net: stmmac: xgmac: fix l4 filter port overwrite on register update
net: stmmac: fix l3l4 filter rejecting unsupported offload requests
net: stmmac: reset residual action in L3L4 filters on delete
.../ethernet/stmicro/stmmac/dwxgmac2_core.c | 28 ++++++++-------
.../net/ethernet/stmicro/stmmac/stmmac_tc.c | 35 +++++++++++++++++++
2 files changed, 51 insertions(+), 12 deletions(-)
--
2.43.7
© 2016 - 2026 Red Hat, Inc.