diff options
author | Christophe Jaillet <christophe.jaillet@wanadoo.fr> | 2016-07-17 08:15:50 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-07-19 11:30:26 -0700 |
commit | 731e6f007aa2d07fc1a420bffeb7c9e8226e89e6 (patch) | |
tree | d1a2e997158f55d4b2baf58bf3cdf81614d9c37b /drivers/net/ethernet/ti/cpmac.c | |
parent | 0d7eacbe637952fc737a968bc16db1f2ccbbe71c (diff) | |
download | linux-731e6f007aa2d07fc1a420bffeb7c9e8226e89e6.tar.bz2 |
net: ti: cpmac: Use the correct function to free some resources.
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>
Diffstat (limited to 'drivers/net/ethernet/ti/cpmac.c')
-rw-r--r-- | drivers/net/ethernet/ti/cpmac.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/ti/cpmac.c b/drivers/net/ethernet/ti/cpmac.c index f86497c2888a..29f381b16a44 100644 --- a/drivers/net/ethernet/ti/cpmac.c +++ b/drivers/net/ethernet/ti/cpmac.c @@ -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: |