diff options
author | David S. Miller <davem@davemloft.net> | 2009-05-25 10:42:21 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-25 10:42:21 +0200 |
commit | c649c0e31d5736a4b7c5c3454182091dda4bbe62 (patch) | |
tree | 93da11bf4ea828611ab5277a7dbadf57724c2b1e /drivers/net/gianfar.c | |
parent | mISDN: Added PCI ID for new Junghanns.net Single E1 cards. (diff) | |
parent | gianfar: fix BUG under load after introduction of skb recycling (diff) | |
download | linux-c649c0e31d5736a4b7c5c3454182091dda4bbe62.tar.xz linux-c649c0e31d5736a4b7c5c3454182091dda4bbe62.zip |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/wireless/ath/ath5k/phy.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
Diffstat (limited to 'drivers/net/gianfar.c')
-rw-r--r-- | drivers/net/gianfar.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index 2bb038b98cc4..4ae1d259fced 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c @@ -1851,8 +1851,17 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit) if (unlikely(!newskb)) newskb = skb; - else if (skb) + else if (skb) { + /* + * We need to reset ->data to what it + * was before gfar_new_skb() re-aligned + * it to an RXBUF_ALIGNMENT boundary + * before we put the skb back on the + * recycle list. + */ + skb->data = skb->head + NET_SKB_PAD; __skb_queue_head(&priv->rx_recycle, skb); + } } else { /* Increment the number of packets */ dev->stats.rx_packets++; |