aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/ti/cpmac.c
diff options
context:
space:
mode:
authorChristophe Jaillet <christophe.jaillet@wanadoo.fr>2016-07-17 08:15:50 +0200
committerDavid S. Miller <davem@davemloft.net>2016-07-19 11:30:26 -0700
commit731e6f007aa2d07fc1a420bffeb7c9e8226e89e6 (patch)
treed1a2e997158f55d4b2baf58bf3cdf81614d9c37b /drivers/net/ethernet/ti/cpmac.c
parentmacvtap: correctly free skb during socket destruction (diff)
downloadlinux-dev-731e6f007aa2d07fc1a420bffeb7c9e8226e89e6.tar.xz
linux-dev-731e6f007aa2d07fc1a420bffeb7c9e8226e89e6.zip
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.c4
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: