2021-12-23 13:59:17

by Horatiu Vultur

[permalink] [raw]
Subject: [PATCH net-next] net: lan966x: Fix the vlan used by host ports

The blamed commit changed the vlan used by the host ports to be 4095
instead of 0.
Because of this change the following issues are seen:
- when the port is probed first it was adding an entry in the MAC table
with the wrong vlan (port->pvid which is default 0) and not HOST_PVID
- when the port is removed from a bridge, it was using the wrong vlan to
add entries in the MAC table. It was using the old PVID and not the
HOST_PVID

This patch fixes this two issues by using the HOST_PVID instead of
port->pvid.

Fixes: 6d2c186afa5d5d ("net: lan966x: Add vlan support.")
Signed-off-by: Horatiu Vultur <[email protected]>
---
drivers/net/ethernet/microchip/lan966x/lan966x_main.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
index 54097247c7a7..2cb70da63db3 100644
--- a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
+++ b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
@@ -322,7 +322,7 @@ static int lan966x_mc_unsync(struct net_device *dev, const unsigned char *addr)
struct lan966x_port *port = netdev_priv(dev);
struct lan966x *lan966x = port->lan966x;

- return lan966x_mac_forget(lan966x, addr, port->pvid, ENTRYTYPE_LOCKED);
+ return lan966x_mac_forget(lan966x, addr, HOST_PVID, ENTRYTYPE_LOCKED);
}

static int lan966x_mc_sync(struct net_device *dev, const unsigned char *addr)
@@ -330,7 +330,7 @@ static int lan966x_mc_sync(struct net_device *dev, const unsigned char *addr)
struct lan966x_port *port = netdev_priv(dev);
struct lan966x *lan966x = port->lan966x;

- return lan966x_mac_cpu_learn(lan966x, addr, port->pvid);
+ return lan966x_mac_cpu_learn(lan966x, addr, HOST_PVID);
}

static void lan966x_port_set_rx_mode(struct net_device *dev)
@@ -594,7 +594,7 @@ static int lan966x_probe_port(struct lan966x *lan966x, u32 p,

eth_hw_addr_gen(dev, lan966x->base_mac, p + 1);

- lan966x_mac_learn(lan966x, PGID_CPU, dev->dev_addr, port->pvid,
+ lan966x_mac_learn(lan966x, PGID_CPU, dev->dev_addr, HOST_PVID,
ENTRYTYPE_LOCKED);

port->phylink_config.dev = &port->dev->dev;
--
2.33.0



2021-12-27 12:20:18

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net-next] net: lan966x: Fix the vlan used by host ports

Hello:

This patch was applied to netdev/net-next.git (master)
by David S. Miller <[email protected]>:

On Thu, 23 Dec 2021 15:01:13 +0100 you wrote:
> The blamed commit changed the vlan used by the host ports to be 4095
> instead of 0.
> Because of this change the following issues are seen:
> - when the port is probed first it was adding an entry in the MAC table
> with the wrong vlan (port->pvid which is default 0) and not HOST_PVID
> - when the port is removed from a bridge, it was using the wrong vlan to
> add entries in the MAC table. It was using the old PVID and not the
> HOST_PVID
>
> [...]

Here is the summary with links:
- [net-next] net: lan966x: Fix the vlan used by host ports
https://git.kernel.org/netdev/net-next/c/0c94d657d2a4

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html