[net,v1,4/6] net: dsa: microchip: ksz8: ksz8_fdb_dump: avoid extracting ghost entry from empty dynamic MAC table.

Message ID 20230322143130.1432106-5-o.rempel@pengutronix.de
State New
Headers
Series net: dsa: microchip: ksz8: fixes for stable |

Commit Message

Oleksij Rempel March 22, 2023, 2:31 p.m. UTC
  If the dynamic MAC table is empty, we will still extract one outdated
entry. Fix it by using correct bit offset.

Fixes: d23a5e18606c ("net: dsa: microchip: move ksz8->masks to ksz_common")
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
---
 drivers/net/dsa/microchip/ksz_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Arun Ramadoss March 24, 2023, 4:04 a.m. UTC | #1
Hi Oleksij,

On Wed, 2023-03-22 at 15:31 +0100, Oleksij Rempel wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you
> know the content is safe
> 
> If the dynamic MAC table is empty, we will still extract one outdated
> entry. Fix it by using correct bit offset.
> 
> Fixes: d23a5e18606c ("net: dsa: microchip: move ksz8->masks to
> ksz_common")
> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
> ---
>  drivers/net/dsa/microchip/ksz_common.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/dsa/microchip/ksz_common.c
> b/drivers/net/dsa/microchip/ksz_common.c
> index c914449645ca..4929fb29ed06 100644
> --- a/drivers/net/dsa/microchip/ksz_common.c
> +++ b/drivers/net/dsa/microchip/ksz_common.c
> @@ -408,7 +408,7 @@ static const u32 ksz8863_masks[] = {
>         [STATIC_MAC_TABLE_OVERRIDE]     = BIT(20),
>         [STATIC_MAC_TABLE_FWD_PORTS]    = GENMASK(18, 16),
>         [DYNAMIC_MAC_TABLE_ENTRIES_H]   = GENMASK(1, 0),
> -       [DYNAMIC_MAC_TABLE_MAC_EMPTY]   = BIT(7),
> +       [DYNAMIC_MAC_TABLE_MAC_EMPTY]   = BIT(2),

Cross verified the bit mask with datasheet.
Patch Looks good to me.

Acked-by: Arun Ramadoss <arun.ramadoss@microchip.com>

>         [DYNAMIC_MAC_TABLE_NOT_READY]   = BIT(7),
>         [DYNAMIC_MAC_TABLE_ENTRIES]     = GENMASK(31, 24),
>         [DYNAMIC_MAC_TABLE_FID]         = GENMASK(19, 16),
> --
> 2.30.2
>
  

Patch

diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c
index c914449645ca..4929fb29ed06 100644
--- a/drivers/net/dsa/microchip/ksz_common.c
+++ b/drivers/net/dsa/microchip/ksz_common.c
@@ -408,7 +408,7 @@  static const u32 ksz8863_masks[] = {
 	[STATIC_MAC_TABLE_OVERRIDE]	= BIT(20),
 	[STATIC_MAC_TABLE_FWD_PORTS]	= GENMASK(18, 16),
 	[DYNAMIC_MAC_TABLE_ENTRIES_H]	= GENMASK(1, 0),
-	[DYNAMIC_MAC_TABLE_MAC_EMPTY]	= BIT(7),
+	[DYNAMIC_MAC_TABLE_MAC_EMPTY]	= BIT(2),
 	[DYNAMIC_MAC_TABLE_NOT_READY]	= BIT(7),
 	[DYNAMIC_MAC_TABLE_ENTRIES]	= GENMASK(31, 24),
 	[DYNAMIC_MAC_TABLE_FID]		= GENMASK(19, 16),