gianfar: Fix a memory leak in gianfar close code
authorAndy Fleming <afleming@freescale.com>
Mon, 29 Mar 2010 15:42:23 +0000 (15:42 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 Mar 2010 06:03:16 +0000 (23:03 -0700)
gianfar needed to ensure existence of the *skbuff arrays before
freeing the skbs in them, rather than ensuring their nonexistence.

Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/gianfar.c

index 669de028d44fe19de5e43eae055a5453574e762a..c98fead8412b4dd412080a85505a35c319e106ce 100644 (file)
@@ -1638,13 +1638,13 @@ static void free_skb_resources(struct gfar_private *priv)
        /* Go through all the buffer descriptors and free their data buffers */
        for (i = 0; i < priv->num_tx_queues; i++) {
                tx_queue = priv->tx_queue[i];
-               if(!tx_queue->tx_skbuff)
+               if(tx_queue->tx_skbuff)
                        free_skb_tx_queue(tx_queue);
        }
 
        for (i = 0; i < priv->num_rx_queues; i++) {
                rx_queue = priv->rx_queue[i];
-               if(!rx_queue->rx_skbuff)
+               if(rx_queue->rx_skbuff)
                        free_skb_rx_queue(rx_queue);
        }