[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e1508978-8f0e-40a6-baa8-3d3bc4c82811@gmail.com>
Date: Sat, 31 Jul 2021 15:27:04 +0200
From: Eric Woudstra <ericwouds@...il.com>
To: Sasha Levin <sashal@...nel.org>
CC: linux-kernel@...r.kernel.org, stable@...r.kernel.org,
"David S . Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org
Subject: Re: [PATCH AUTOSEL 4.19 5/6] mt7530 fix mt7530_fdb_write vid missing ivl bit
A few days after this patch, I send in another as it needs a fix. If you apply this patch, please also apply the other: set ivl bit only for vid larger than 1.
On Jul 27, 2021, 3:20 PM, at 3:20 PM, Sasha Levin <sashal@...nel.org> wrote:
>From: Eric Woudstra <ericwouds@...il.com>
>
>[ Upstream commit 11d8d98cbeef1496469b268d79938b05524731e8 ]
>
>According to reference guides mt7530 (mt7620) and mt7531:
>
>NOTE: When IVL is reset, MAC[47:0] and FID[2:0] will be used to
>read/write the address table. When IVL is set, MAC[47:0] and CVID[11:0]
>will be used to read/write the address table.
>
>Since the function only fills in CVID and no FID, we need to set the
>IVL bit. The existing code does not set it.
>
>This is a fix for the issue I dropped here earlier:
>
>http://lists.infradead.org/pipermail/linux-mediatek/2021-June/025697.html
>
>With this patch, it is now possible to delete the 'self' fdb entry
>manually. However, wifi roaming still has the same issue, the entry
>does not get deleted automatically. Wifi roaming also needs a fix
>somewhere else to function correctly in combination with vlan.
>
>Signed-off-by: Eric Woudstra <ericwouds@...il.com>
>Signed-off-by: David S. Miller <davem@...emloft.net>
>Signed-off-by: Sasha Levin <sashal@...nel.org>
>---
> drivers/net/dsa/mt7530.c | 1 +
> drivers/net/dsa/mt7530.h | 1 +
> 2 files changed, 2 insertions(+)
>
>diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
>index 6335c4ea0957..96dbc51caf48 100644
>--- a/drivers/net/dsa/mt7530.c
>+++ b/drivers/net/dsa/mt7530.c
>@@ -414,6 +414,7 @@ mt7530_fdb_write(struct mt7530_priv *priv, u16 vid,
> int i;
>
> reg[1] |= vid & CVID_MASK;
>+ reg[1] |= ATA2_IVL;
> reg[2] |= (aging & AGE_TIMER_MASK) << AGE_TIMER;
> reg[2] |= (port_mask & PORT_MAP_MASK) << PORT_MAP;
> /* STATIC_ENT indicate that entry is static wouldn't
>diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
>index 101d309ee445..72f53e6bc145 100644
>--- a/drivers/net/dsa/mt7530.h
>+++ b/drivers/net/dsa/mt7530.h
>@@ -43,6 +43,7 @@
> #define STATIC_EMP 0
> #define STATIC_ENT 3
> #define MT7530_ATA2 0x78
>+#define ATA2_IVL BIT(15)
>
> /* Register for address table write data */
> #define MT7530_ATWD 0x7c
>--
>2.30.2
Powered by blists - more mailing lists