Ag71xx needs to call the phy's netif_receive_skb() to allow phy drivers
to mangle rx packets. This patch fixes it.

This fixes the header mangling of the AR8216 driver.

Signed-off-by: Jonas Gorski <jonas.gorski+open...@gmail.com>
---
 .../linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h |    2 +-
 .../ar71xx/files/drivers/net/ag71xx/ag71xx_main.c  |    8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h 
b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
index a64b4a8..77551dd 100644
--- a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
+++ b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
@@ -38,7 +38,7 @@
 #define ETH_FCS_LEN    4
 
 #define AG71XX_DRV_NAME                "ag71xx"
-#define AG71XX_DRV_VERSION     "0.5.33"
+#define AG71XX_DRV_VERSION     "0.5.34"
 
 #define AG71XX_NAPI_WEIGHT     64
 #define AG71XX_OOM_REFILL      (1 + HZ/10)
diff --git a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c 
b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
index 4b35b1f..27c1956 100644
--- a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
+++ b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
@@ -826,8 +826,12 @@ static int ag71xx_rx_packets(struct ag71xx *ag, int limit)
                } else {
                        skb->dev = dev;
                        skb->ip_summed = CHECKSUM_NONE;
-                       skb->protocol = eth_type_trans(skb, dev);
-                       netif_receive_skb(skb);
+                       if (ag->phy_dev) {
+                               ag->phy_dev->netif_receive_skb(skb);
+                       } else {
+                               skb->protocol = eth_type_trans(skb, dev);
+                               netif_receive_skb(skb);
+                       }
                }
 
                ring->buf[i].skb = NULL;
-- 
1.7.0

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to