Просмотр исходного кода

ar8216: do not strip vlan tags when running with vlan_enable=0

SVN-Revision: 29718
Felix Fietkau 14 лет назад
Родитель
Сommit
c33e016fa5
1 измененных файлов с 6 добавлено и 3 удалено
  1. 6 3
      target/linux/generic/files/drivers/net/phy/ar8216.c

+ 6 - 3
target/linux/generic/files/drivers/net/phy/ar8216.c

@@ -593,10 +593,13 @@ ar8216_hw_apply(struct switch_dev *dev)
 			pvid = i;
 		}
 
-		if (priv->vlan && (priv->vlan_tagged & (1 << i))) {
-			egress = AR8216_OUT_ADD_VLAN;
+		if (priv->vlan) {
+			if (priv->vlan_tagged & (1 << i))
+				egress = AR8216_OUT_ADD_VLAN;
+			else
+				egress = AR8216_OUT_STRIP_VLAN;
 		} else {
-			egress = AR8216_OUT_STRIP_VLAN;
+			egress = AR8216_OUT_KEEP;
 		}
 		if (priv->vlan) {
 			ingress = AR8216_IN_SECURE;