ar71xx: ag71xx: call the phy driver's netif_receive_skb()

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+openwrt@gmail.com>
Cc:backfire@openwrt.org

SVN-Revision: 20750
master
Gabor Juhos 15 years ago
parent 722e75f066
commit 4a28844d80
  1. 2
      target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
  2. 8
      target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c

@ -38,7 +38,7 @@
#define ETH_FCS_LEN 4 #define ETH_FCS_LEN 4
#define AG71XX_DRV_NAME "ag71xx" #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_NAPI_WEIGHT 64
#define AG71XX_OOM_REFILL (1 + HZ/10) #define AG71XX_OOM_REFILL (1 + HZ/10)

@ -826,8 +826,12 @@ static int ag71xx_rx_packets(struct ag71xx *ag, int limit)
} else { } else {
skb->dev = dev; skb->dev = dev;
skb->ip_summed = CHECKSUM_NONE; skb->ip_summed = CHECKSUM_NONE;
skb->protocol = eth_type_trans(skb, dev); if (ag->phy_dev) {
netif_receive_skb(skb); ag->phy_dev->netif_receive_skb(skb);
} else {
skb->protocol = eth_type_trans(skb, dev);
netif_receive_skb(skb);
}
} }
ring->buf[i].skb = NULL; ring->buf[i].skb = NULL;

Loading…
Cancel
Save