net: ti: cpmac: Use the correct function to free some resources.
authorChristophe Jaillet <christophe.jaillet@wanadoo.fr>
Sun, 17 Jul 2016 06:15:50 +0000 (08:15 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 Jul 2016 18:30:26 +0000 (11:30 -0700)
In 'cpmac_open', 'dma_alloc_coherent' has been used to allocate some
resources, so we need to free them using 'dma_free_coherent' instead
of 'kfree'.

Also, we don't need to free these resources if the allocation has failed.
So I have slighly modified the goto label in this case.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpmac.c

index f86497c2888ad89d6730cbcc656917e2e9628fed..29f381b16a44a420c68e38892d5a1138c4af4027 100644 (file)
@@ -1006,8 +1006,10 @@ fail_desc:
                        kfree_skb(priv->rx_head[i].skb);
                }
        }
+       dma_free_coherent(&dev->dev, sizeof(struct cpmac_desc) * size,
+                         priv->desc_ring, priv->dma_ring);
+
 fail_alloc:
-       kfree(priv->desc_ring);
        iounmap(priv->regs);
 
 fail_remap: