summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorHoratiu Vultur <horatiu.vultur@microchip.com>2021-12-23 15:01:13 +0100
committerDavid S. Miller <davem@davemloft.net>2021-12-27 12:16:30 +0000
commit0c94d657d2a416c861df4789fd310f09f5dfad59 (patch)
tree9091431ed27c9f903c7e5d66394b0612c2708a87 /drivers
parent099eac91bcda67bde5dc7db158a7c42a1dba4d51 (diff)
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 <horatiu.vultur@microchip.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/microchip/lan966x/lan966x_main.c6
1 files 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 16f4d8737d7b..2c6bf7b0afdf 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;