diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-04-26 16:39:13 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2010-04-26 16:39:13 +0000 |
commit | fe2c15b6a5748e428d2dd271ef1e52f92cbeaceb (patch) | |
tree | 1683148255608ce264d40e2ea23a3eef74f43204 /target/linux/ar71xx/files/drivers | |
parent | 6edaad0b91ed25edc95f09ca0a7fbbe740018328 (diff) | |
download | master-187ad058-fe2c15b6a5748e428d2dd271ef1e52f92cbeaceb.tar.gz master-187ad058-fe2c15b6a5748e428d2dd271ef1e52f92cbeaceb.tar.bz2 master-187ad058-fe2c15b6a5748e428d2dd271ef1e52f92cbeaceb.zip |
ag71xx: remove rx alignment code for small packets, it seems to break ipv6 for some reason (fixes #7236)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21166 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar71xx/files/drivers')
-rw-r--r-- | target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c | 24 |
1 files changed, 0 insertions, 24 deletions
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 a3b5f95989..a57b6d46fc 100644 --- a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c +++ b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c @@ -778,28 +778,6 @@ static int ag71xx_tx_packets(struct ag71xx *ag) return sent; } -static void ag71xx_rx_align_skb(struct ag71xx *ag, struct sk_buff *skb, int len) -{ - int offset = ((unsigned long) skb->data) % 4; - void *data; - - if (offset == 2) - return; - - if (ag->phy_dev && ag->phy_dev->pkt_align != 0) - return; - - if (len > 128) - return; - - if (WARN_ON(skb_headroom(skb) < 2)) - return; - - data = skb->data; - skb->data -= 2; - memmove(skb->data, data, len); -} - static int ag71xx_rx_packets(struct ag71xx *ag, int limit) { struct net_device *dev = ag->dev; @@ -841,8 +819,6 @@ static int ag71xx_rx_packets(struct ag71xx *ag, int limit) if (ag71xx_has_ar8216(ag)) err = ag71xx_remove_ar8216_header(ag, skb, pktlen); - ag71xx_rx_align_skb(ag, skb, pktlen); - if (err) { dev->stats.rx_dropped++; kfree_skb(skb); |