Changeset 21166


Ignore:
Timestamp:
2010-04-26T18:39:13+02:00 (8 years ago)
Author:
nbd
Message:

ag71xx: remove rx alignment code for small packets, it seems to break ipv6 for some reason (fixes #7236)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c

    r20892 r21166  
    779779} 
    780780 
    781 static void ag71xx_rx_align_skb(struct ag71xx *ag, struct sk_buff *skb, int len) 
    782 { 
    783         int offset = ((unsigned long) skb->data) % 4; 
    784         void *data; 
    785  
    786         if (offset == 2) 
    787                 return; 
    788  
    789         if (ag->phy_dev && ag->phy_dev->pkt_align != 0) 
    790                 return; 
    791  
    792         if (len > 128) 
    793                 return; 
    794  
    795         if (WARN_ON(skb_headroom(skb) < 2)) 
    796                 return; 
    797  
    798         data = skb->data; 
    799         skb->data -= 2; 
    800         memmove(skb->data, data, len); 
    801 } 
    802  
    803781static int ag71xx_rx_packets(struct ag71xx *ag, int limit) 
    804782{ 
     
    841819                if (ag71xx_has_ar8216(ag)) 
    842820                        err = ag71xx_remove_ar8216_header(ag, skb, pktlen); 
    843  
    844                 ag71xx_rx_align_skb(ag, skb, pktlen); 
    845821 
    846822                if (err) { 
Note: See TracChangeset for help on using the changeset viewer.