* [PATCH] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear
@ 2022-09-28 1:25 Daniel Golle
2022-09-28 9:27 ` Lorenzo Bianconi
2022-09-29 2:09 ` Jakub Kicinski
0 siblings, 2 replies; 7+ messages in thread
From: Daniel Golle @ 2022-09-28 1:25 UTC (permalink / raw)
To: linux-mediatek, netdev, Lorenzo Bianconi
Cc: Sujuan Chen, Bo Jiao, Felix Fietkau, John Crispin, Sean Wang,
Mark Lee, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Matthias Brugger, Chen Minqiang, Thomas Hühn
Setting ib1 state to MTK_FOE_STATE_UNBIND in __mtk_foe_entry_clear
routine as done by commit 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc:
fix typo in __mtk_foe_entry_clear") breaks flow offloading, at least
on older MTK_NETSYS_V1 SoCs; OpenWrt users have confirmed the bug on
MT7622 and MT7621 systems.
Felix Fietkau suggested to use MTK_FOE_STATE_INVALID instead which
works well on both, MTK_NETSYS_V1 and MTK_NETSYS_V2.
Tested on MT7622 (Linksys E8450) and MT7986 (BananaPi BPI-R3).
Suggested-by: Felix Fietkau <nbd@nbd.name>
Fixes: 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc: fix typo in __mtk_foe_entry_clear")
Fixes: 33fc42de33278 ("net: ethernet: mtk_eth_soc: support creating mac address based offload entries")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
drivers/net/ethernet/mediatek/mtk_ppe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet/mediatek/mtk_ppe.c
index 887f430734f747..ae00e572390d7b 100644
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
@@ -442,7 +442,7 @@ __mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash);
hwe->ib1 &= ~MTK_FOE_IB1_STATE;
- hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_UNBIND);
+ hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
dma_wmb();
}
entry->hash = 0xffff;
--
2.37.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear
2022-09-28 1:25 [PATCH] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear Daniel Golle
@ 2022-09-28 9:27 ` Lorenzo Bianconi
2022-09-29 2:09 ` Jakub Kicinski
1 sibling, 0 replies; 7+ messages in thread
From: Lorenzo Bianconi @ 2022-09-28 9:27 UTC (permalink / raw)
To: Daniel Golle
Cc: linux-mediatek, netdev, Sujuan Chen, Bo Jiao, Felix Fietkau,
John Crispin, Sean Wang, Mark Lee, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Matthias Brugger, Chen Minqiang,
Thomas Hühn
[-- Attachment #1: Type: text/plain, Size: 1650 bytes --]
> Setting ib1 state to MTK_FOE_STATE_UNBIND in __mtk_foe_entry_clear
> routine as done by commit 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc:
> fix typo in __mtk_foe_entry_clear") breaks flow offloading, at least
> on older MTK_NETSYS_V1 SoCs; OpenWrt users have confirmed the bug on
> MT7622 and MT7621 systems.
> Felix Fietkau suggested to use MTK_FOE_STATE_INVALID instead which
> works well on both, MTK_NETSYS_V1 and MTK_NETSYS_V2.
>
> Tested on MT7622 (Linksys E8450) and MT7986 (BananaPi BPI-R3).
>
> Suggested-by: Felix Fietkau <nbd@nbd.name>
> Fixes: 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc: fix typo in __mtk_foe_entry_clear")
> Fixes: 33fc42de33278 ("net: ethernet: mtk_eth_soc: support creating mac address based offload entries")
> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
> ---
> drivers/net/ethernet/mediatek/mtk_ppe.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet/mediatek/mtk_ppe.c
> index 887f430734f747..ae00e572390d7b 100644
> --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
> +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
> @@ -442,7 +442,7 @@ __mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
> struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash);
>
> hwe->ib1 &= ~MTK_FOE_IB1_STATE;
> - hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_UNBIND);
> + hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
> dma_wmb();
> }
> entry->hash = 0xffff;
> --
> 2.37.3
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear
2022-09-28 1:25 [PATCH] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear Daniel Golle
2022-09-28 9:27 ` Lorenzo Bianconi
@ 2022-09-29 2:09 ` Jakub Kicinski
2022-09-30 0:56 ` [PATCH v2] " Daniel Golle
1 sibling, 1 reply; 7+ messages in thread
From: Jakub Kicinski @ 2022-09-29 2:09 UTC (permalink / raw)
To: Daniel Golle
Cc: linux-mediatek, netdev, Lorenzo Bianconi, Sujuan Chen, Bo Jiao,
Felix Fietkau, John Crispin, Sean Wang, Mark Lee, David S. Miller,
Eric Dumazet, Paolo Abeni, Matthias Brugger, Chen Minqiang,
Thomas Hühn
On Wed, 28 Sep 2022 02:25:15 +0100 Daniel Golle wrote:
> Setting ib1 state to MTK_FOE_STATE_UNBIND in __mtk_foe_entry_clear
> routine as done by commit 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc:
> fix typo in __mtk_foe_entry_clear") breaks flow offloading, at least
> on older MTK_NETSYS_V1 SoCs; OpenWrt users have confirmed the bug on
> MT7622 and MT7621 systems.
> Felix Fietkau suggested to use MTK_FOE_STATE_INVALID instead which
> works well on both, MTK_NETSYS_V1 and MTK_NETSYS_V2.
>
> Tested on MT7622 (Linksys E8450) and MT7986 (BananaPi BPI-R3).
>
> Suggested-by: Felix Fietkau <nbd@nbd.name>
> Fixes: 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc: fix typo in __mtk_foe_entry_clear")
> Fixes: 33fc42de33278 ("net: ethernet: mtk_eth_soc: support creating mac address based offload entries")
> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Looks like this patch is generated on top of net-next while it fixes
a bug in net (judging by mention of 0e80707d94e4c8).
Please rebase on top of net and resent, we'll deal with the conflict.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear
2022-09-29 2:09 ` Jakub Kicinski
@ 2022-09-30 0:56 ` Daniel Golle
2022-10-01 2:20 ` patchwork-bot+netdevbpf
2022-10-03 12:59 ` [PATCH v2] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear: manual merge Matthieu Baerts
0 siblings, 2 replies; 7+ messages in thread
From: Daniel Golle @ 2022-09-30 0:56 UTC (permalink / raw)
To: Jakub Kicinski
Cc: linux-mediatek, netdev, Lorenzo Bianconi, Sujuan Chen, Bo Jiao,
Felix Fietkau, John Crispin, Sean Wang, Mark Lee, David S. Miller,
Eric Dumazet, Paolo Abeni, Matthias Brugger, Chen Minqiang,
Thomas Hühn
Setting ib1 state to MTK_FOE_STATE_UNBIND in __mtk_foe_entry_clear
routine as done by commit 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc:
fix typo in __mtk_foe_entry_clear") breaks flow offloading, at least
on older MTK_NETSYS_V1 SoCs, OpenWrt users have confirmed the bug on
MT7622 and MT7621 systems.
Felix Fietkau suggested to use MTK_FOE_STATE_INVALID instead which
works well on both, MTK_NETSYS_V1 and MTK_NETSYS_V2.
Tested on MT7622 (Linksys E8450) and MT7986 (BananaPi BPI-R3).
Suggested-by: Felix Fietkau <nbd@nbd.name>
Fixes: 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc: fix typo in __mtk_foe_entry_clear")
Fixes: 33fc42de33278b ("net: ethernet: mtk_eth_soc: support creating mac address based offload entries")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
v2: rebased on top of netdev/net.git;main
drivers/net/ethernet/mediatek/mtk_ppe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet/mediatek/mtk_ppe.c
index cfe804bc8d2055..148ea636ef9794 100644
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
@@ -412,7 +412,7 @@ __mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
if (entry->hash != 0xffff) {
ppe->foe_table[entry->hash].ib1 &= ~MTK_FOE_IB1_STATE;
ppe->foe_table[entry->hash].ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE,
- MTK_FOE_STATE_UNBIND);
+ MTK_FOE_STATE_INVALID);
dma_wmb();
}
entry->hash = 0xffff;
--
2.37.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear
2022-09-30 0:56 ` [PATCH v2] " Daniel Golle
@ 2022-10-01 2:20 ` patchwork-bot+netdevbpf
2022-10-03 12:59 ` [PATCH v2] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear: manual merge Matthieu Baerts
1 sibling, 0 replies; 7+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-10-01 2:20 UTC (permalink / raw)
To: Daniel Golle
Cc: kuba, linux-mediatek, netdev, lorenzo, sujuan.chen, Bo.Jiao, nbd,
john, sean.wang, Mark-MC.Lee, davem, edumazet, pabeni,
matthias.bgg, ptpt52, thomas.huehn
Hello:
This patch was applied to netdev/net.git (master)
by Jakub Kicinski <kuba@kernel.org>:
On Fri, 30 Sep 2022 01:56:53 +0100 you wrote:
> Setting ib1 state to MTK_FOE_STATE_UNBIND in __mtk_foe_entry_clear
> routine as done by commit 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc:
> fix typo in __mtk_foe_entry_clear") breaks flow offloading, at least
> on older MTK_NETSYS_V1 SoCs, OpenWrt users have confirmed the bug on
> MT7622 and MT7621 systems.
> Felix Fietkau suggested to use MTK_FOE_STATE_INVALID instead which
> works well on both, MTK_NETSYS_V1 and MTK_NETSYS_V2.
>
> [...]
Here is the summary with links:
- [v2] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear
https://git.kernel.org/netdev/net/c/ae3ed15da588
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear: manual merge
2022-09-30 0:56 ` [PATCH v2] " Daniel Golle
2022-10-01 2:20 ` patchwork-bot+netdevbpf
@ 2022-10-03 12:59 ` Matthieu Baerts
2022-10-03 13:47 ` Daniel Golle
1 sibling, 1 reply; 7+ messages in thread
From: Matthieu Baerts @ 2022-10-03 12:59 UTC (permalink / raw)
To: Daniel Golle, Jakub Kicinski
Cc: linux-mediatek, netdev, Lorenzo Bianconi, Sujuan Chen, Bo Jiao,
Felix Fietkau, John Crispin, Sean Wang, Mark Lee, David S. Miller,
Eric Dumazet, Paolo Abeni, Matthias Brugger, Chen Minqiang,
Thomas Hühn
[-- Attachment #1: Type: text/plain, Size: 1534 bytes --]
Hello,
On 30/09/2022 02:56, Daniel Golle wrote:
> Setting ib1 state to MTK_FOE_STATE_UNBIND in __mtk_foe_entry_clear
> routine as done by commit 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc:
> fix typo in __mtk_foe_entry_clear") breaks flow offloading, at least
> on older MTK_NETSYS_V1 SoCs, OpenWrt users have confirmed the bug on
> MT7622 and MT7621 systems.
> Felix Fietkau suggested to use MTK_FOE_STATE_INVALID instead which
> works well on both, MTK_NETSYS_V1 and MTK_NETSYS_V2.
>
> Tested on MT7622 (Linksys E8450) and MT7986 (BananaPi BPI-R3).
>
> Suggested-by: Felix Fietkau <nbd@nbd.name>
> Fixes: 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc: fix typo in __mtk_foe_entry_clear")
> Fixes: 33fc42de33278b ("net: ethernet: mtk_eth_soc: support creating mac address based offload entries")
> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
> ---
> v2: rebased on top of netdev/net.git;main
FYI and as expected when reading this email thread, we got a small
conflict when merging -net in net-next in the MPTCP tree due to this
patch applied in -net:
ae3ed15da588 ("net: ethernet: mtk_eth_soc: fix state in
__mtk_foe_entry_clear")
and this one from net-next:
9d8cb4c096ab ("net: ethernet: mtk_eth_soc: add foe_entry_size to
mtk_eth_soc")
The conflict has been resolved on our side[1] inspired by Daniel's v1.
The resolution we suggest is attached to this email.
Cheers,
Matt
[1] https://github.com/multipath-tcp/mptcp_net-next/commit/7af5fac658ba
--
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net
[-- Attachment #2: 7af5fac658ba05d4f5ba19fa7e054aa4ef917128.patch --]
[-- Type: text/x-patch, Size: 786 bytes --]
diff --cc drivers/net/ethernet/mediatek/mtk_ppe.c
index 887f430734f7,148ea636ef97..ae00e572390d
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
@@@ -439,10 -410,9 +439,10 @@@ __mtk_foe_entry_clear(struct mtk_ppe *p
hlist_del_init(&entry->list);
if (entry->hash != 0xffff) {
- ppe->foe_table[entry->hash].ib1 &= ~MTK_FOE_IB1_STATE;
- ppe->foe_table[entry->hash].ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE,
- MTK_FOE_STATE_INVALID);
+ struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash);
+
+ hwe->ib1 &= ~MTK_FOE_IB1_STATE;
- hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_UNBIND);
++ hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
dma_wmb();
}
entry->hash = 0xffff;
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear: manual merge
2022-10-03 12:59 ` [PATCH v2] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear: manual merge Matthieu Baerts
@ 2022-10-03 13:47 ` Daniel Golle
0 siblings, 0 replies; 7+ messages in thread
From: Daniel Golle @ 2022-10-03 13:47 UTC (permalink / raw)
To: Matthieu Baerts
Cc: Jakub Kicinski, linux-mediatek, netdev, Lorenzo Bianconi,
Sujuan Chen, Bo Jiao, Felix Fietkau, John Crispin, Sean Wang,
Mark Lee, David S. Miller, Eric Dumazet, Paolo Abeni,
Matthias Brugger, Chen Minqiang, Thomas Hühn
On Mon, Oct 03, 2022 at 02:59:32PM +0200, Matthieu Baerts wrote:
> Hello,
>
> On 30/09/2022 02:56, Daniel Golle wrote:
> > Setting ib1 state to MTK_FOE_STATE_UNBIND in __mtk_foe_entry_clear
> > routine as done by commit 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc:
> > fix typo in __mtk_foe_entry_clear") breaks flow offloading, at least
> > on older MTK_NETSYS_V1 SoCs, OpenWrt users have confirmed the bug on
> > MT7622 and MT7621 systems.
> > Felix Fietkau suggested to use MTK_FOE_STATE_INVALID instead which
> > works well on both, MTK_NETSYS_V1 and MTK_NETSYS_V2.
> >
> > Tested on MT7622 (Linksys E8450) and MT7986 (BananaPi BPI-R3).
> >
> > Suggested-by: Felix Fietkau <nbd@nbd.name>
> > Fixes: 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc: fix typo in __mtk_foe_entry_clear")
> > Fixes: 33fc42de33278b ("net: ethernet: mtk_eth_soc: support creating mac address based offload entries")
> > Signed-off-by: Daniel Golle <daniel@makrotopia.org>
> > ---
> > v2: rebased on top of netdev/net.git;main
>
> FYI and as expected when reading this email thread, we got a small
> conflict when merging -net in net-next in the MPTCP tree due to this
> patch applied in -net:
>
> ae3ed15da588 ("net: ethernet: mtk_eth_soc: fix state in
> __mtk_foe_entry_clear")
>
> and this one from net-next:
>
> 9d8cb4c096ab ("net: ethernet: mtk_eth_soc: add foe_entry_size to
> mtk_eth_soc")
>
> The conflict has been resolved on our side[1] inspired by Daniel's v1.
> The resolution we suggest is attached to this email.
conflict resolution: Acked-by: Daniel Golle <daniel@makrotopia.org>
>
> Cheers,
> Matt
>
> [1] https://github.com/multipath-tcp/mptcp_net-next/commit/7af5fac658ba
> --
> Tessares | Belgium | Hybrid Access Solutions
> www.tessares.net
> diff --cc drivers/net/ethernet/mediatek/mtk_ppe.c
> index 887f430734f7,148ea636ef97..ae00e572390d
> --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
> +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
> @@@ -439,10 -410,9 +439,10 @@@ __mtk_foe_entry_clear(struct mtk_ppe *p
>
> hlist_del_init(&entry->list);
> if (entry->hash != 0xffff) {
> - ppe->foe_table[entry->hash].ib1 &= ~MTK_FOE_IB1_STATE;
> - ppe->foe_table[entry->hash].ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE,
> - MTK_FOE_STATE_INVALID);
> + struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash);
> +
> + hwe->ib1 &= ~MTK_FOE_IB1_STATE;
> - hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_UNBIND);
> ++ hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
> dma_wmb();
> }
> entry->hash = 0xffff;
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-10-03 13:48 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-28 1:25 [PATCH] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear Daniel Golle
2022-09-28 9:27 ` Lorenzo Bianconi
2022-09-29 2:09 ` Jakub Kicinski
2022-09-30 0:56 ` [PATCH v2] " Daniel Golle
2022-10-01 2:20 ` patchwork-bot+netdevbpf
2022-10-03 12:59 ` [PATCH v2] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear: manual merge Matthieu Baerts
2022-10-03 13:47 ` Daniel Golle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).