gianfar: Fix packet drop when out of memory
authorAndy Fleming <afleming@freescale.com>
Thu, 18 Dec 2008 00:50:22 +0000 (16:50 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Dec 2008 00:50:22 +0000 (16:50 -0800)
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>
drivers/net/gianfar.c

index 3e611a69df132b7a57ddec797a1d785a849383f0..a6efabc28dc84415c0ebd281e3bfbbe70bd9a928 100644 (file)
@@ -1732,8 +1732,7 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit)
 
                        if (unlikely(!newskb))
                                newskb = skb;
-
-                       if (skb)
+                       else if (skb)
                                dev_kfree_skb_any(skb);
                } else {
                        /* Increment the number of packets */