From d316eaad66cc33f68c1ca9cf3a0841236a99a490 Mon Sep 17 00:00:00 2001 From: Lennert Buytenhek Date: Mon, 25 May 2009 00:42:34 -0700 Subject: [PATCH] --- yaml --- r: 145276 b: refs/heads/master c: 4e2fd555199977c5994d1a4d2d3b8761b20ca4c7 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/gianfar.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 2b299f02abd6..5512b02e29dc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0975ecba3b670df7c488a5e0e6fe9f1f370a8ad8 +refs/heads/master: 4e2fd555199977c5994d1a4d2d3b8761b20ca4c7 diff --git a/trunk/drivers/net/gianfar.c b/trunk/drivers/net/gianfar.c index b2c49679bba7..a0519184e54e 100644 --- a/trunk/drivers/net/gianfar.c +++ b/trunk/drivers/net/gianfar.c @@ -1885,8 +1885,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++;