summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/asf_gianfar.c
diff options
context:
space:
mode:
authorAlok Makhariya <B46187@freescale.com>2014-04-04 11:04:43 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-04-08 01:00:44 (GMT)
commit552a7fc91047e8e3cfe21b3e8268765c29f0ea03 (patch)
tree4bdd48dbad9142f642c60442c7c50f71f0e8e225 /drivers/net/ethernet/freescale/asf_gianfar.c
parent0cff9ad872c8aede1d76f6c87e1d6fa217a718e3 (diff)
downloadlinux-fsl-qoriq-552a7fc91047e8e3cfe21b3e8268765c29f0ea03.tar.xz
gianfar: adding EXTRA_HEADROOM in skb_size calc of asf_gianfar recycle fn.
Recycling of skb was not working. This was due to checks in gfar_recycle_skb is getting false which results in freeing skb every time. There is mismatch b/w skb_size calculated and actual skb size (skb->end - skb->head). So this patch adds EXTRA_HEADROOM when skb_size is calculated. CR:ENGR00306216 Signed-off-by: Alok Makhariya <B46187@freescale.com> Change-Id: I524254ceb2a7ec757645d11922e7066d0b22b756 Reviewed-on: http://git.am.freescale.net:8181/10689 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Rajan Gupta <rajan.gupta@freescale.com> Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/asf_gianfar.c')
-rw-r--r--drivers/net/ethernet/freescale/asf_gianfar.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/freescale/asf_gianfar.c b/drivers/net/ethernet/freescale/asf_gianfar.c
index af7f205..5280ed9 100644
--- a/drivers/net/ethernet/freescale/asf_gianfar.c
+++ b/drivers/net/ethernet/freescale/asf_gianfar.c
@@ -55,7 +55,8 @@ static inline void gfar_asf_reclaim_skb(struct sk_buff *skb)
static inline void gfar_recycle_skb(struct sk_buff *skb)
{
struct sk_buff_head *h = &__get_cpu_var(skb_recycle_list);
- int skb_size = SKB_DATA_ALIGN(GFAR_RXB_REC_SZ + NET_SKB_PAD);
+ int skb_size = SKB_DATA_ALIGN(GFAR_RXB_REC_SZ + NET_SKB_PAD
+ + EXTRA_HEADROOM);
if (skb_queue_len(h) < DEFAULT_RX_RING_SIZE &&
!skb_cloned(skb) && !skb_is_nonlinear(skb) &&