aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/gianfar.c
diff options
context:
space:
mode:
authorAndy Fleming <afleming@freescale.com>2008-12-17 19:50:22 -0500
committerDavid S. Miller <davem@davemloft.net>2008-12-17 19:50:22 -0500
commit8882d9a60028a9937e9c5652cfb80d4399ce5242 (patch)
treed39f493014cc3c3959617ef78d003a72668c5cbe /drivers/net/gianfar.c
parenta693722aec4ce26fb46c21cf4bf4422484a397a7 (diff)
gianfar: Fix packet drop when out of memory
The patch which fixed gianfar so it drops packets when it runs out of memory left in the code which frees the skb when it drops packets. Change the code so that we only free the skb if the new skb was successfully created. Signed-off-by: Andy Fleming <afleming@freescale.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/gianfar.c')
-rw-r--r--drivers/net/gianfar.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 3e611a69df13..a6efabc28dc8 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -1732,8 +1732,7 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit)
1732 1732
1733 if (unlikely(!newskb)) 1733 if (unlikely(!newskb))
1734 newskb = skb; 1734 newskb = skb;
1735 1735 else if (skb)
1736 if (skb)
1737 dev_kfree_skb_any(skb); 1736 dev_kfree_skb_any(skb);
1738 } else { 1737 } else {
1739 /* Increment the number of packets */ 1738 /* Increment the number of packets */