ar8216: set the pvid based on runtime state instead of port number to fix learning...
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 2 Oct 2014 20:00:41 +0000 (20:00 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 2 Oct 2014 20:00:41 +0000 (20:00 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42753 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic/files/drivers/net/phy/ar8216.c

index bd6cc97..c7adc3d 100644 (file)
@@ -1763,14 +1763,12 @@ ar8327_setup_port(struct ar8xxx_priv *priv, int port, u32 members)
 {
        u32 t;
        u32 egress, ingress;
-       u32 pvid;
+       u32 pvid = priv->vlan_id[priv->pvid[port]];
 
        if (priv->vlan) {
-               pvid = priv->vlan_id[priv->pvid[port]];
                egress = AR8327_PORT_VLAN1_OUT_MODE_UNMOD;
                ingress = AR8216_IN_SECURE;
        } else {
-               pvid = port;
                egress = AR8327_PORT_VLAN1_OUT_MODE_UNTOUCH;
                ingress = AR8216_IN_PORT_ONLY;
        }