The following patch uses netif_receive_skb (if present) from the phy driver. When used with an ar8216, it will fix incoming packets in case vlan mode is enabled (the ar8216 driver already intercepts outgoing packets). Other switches currently used by the lantiq platform (adm6996 and rtl8306) don't provide a netif_rx function, so they should not be affected by this patch. The same operating mode was committed here (at the time lantiq_etop used netif_rx):
https://dev.openwrt.org/changeset/26353 but it got lost in the recent reorganization of the lantiq code. Signed-off-by: Luca Olivetti <l...@ventoso.org> --- Index: target/linux/lantiq/patches-2.6.39/0011-MIPS-Lantiq-Add-ethernet-driver.patch =================================================================== --- target/linux/lantiq/patches-2.6.39/0011-MIPS-Lantiq-Add-ethernet-driver.patch (revisiĆ³n: 27363) +++ target/linux/lantiq/patches-2.6.39/0011-MIPS-Lantiq-Add-ethernet-driver.patch (copia de trabajo) @@ -126,7 +126,7 @@ --- /dev/null +++ b/drivers/net/lantiq_etop.c -@@ -0,0 +1,813 @@ +@@ -0,0 +1,817 @@ +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published @@ -284,8 +284,12 @@ + + skb_put(skb, len); + skb->dev = ch->netdev; -+ skb->protocol = eth_type_trans(skb, ch->netdev); -+ netif_receive_skb(skb); ++ if (priv->phydev && priv->phydev->netif_receive_skb) { ++ priv->phydev->netif_receive_skb(skb); ++ } else { ++ skb->protocol = eth_type_trans(skb, ch->netdev); ++ netif_receive_skb(skb); ++ } +} + +static int _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel