summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorIoana Radulescu <ruxandra.radulescu@freescale.com>2013-10-04 09:51:22 (GMT)
committerJ. German Rivera <German.Rivera@freescale.com>2013-10-08 19:08:35 (GMT)
commitf50c051f09223bb7c7ead72828054156beb7b030 (patch)
tree8ef28ac009cc66af259c93617306496d2881bff6 /drivers/net
parent79408cc8e69366500158a4bf07fb46c29a6ea226 (diff)
downloadlinux-fsl-qoriq-f50c051f09223bb7c7ead72828054156beb7b030.tar.xz
dpaa_eth: Fix freeing of global buffer pool
In case an error is encountered during probe, don't actually free the structure containing global buffer pool information unless its reference count has reached zero. Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> Change-Id: Ica7b995ecf31a878a9e7685ec905119f1c38f17b Reviewed-on: http://git.am.freescale.net:8181/5186 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com> Reviewed-by: Cristian-Constantin Sovaiala <Cristian.Sovaiala@freescale.com> Reviewed-by: Rivera Jose-B46482 <German.Rivera@freescale.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
index 7e04f25..9cd3214 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
@@ -862,7 +862,8 @@ mac_probe_failed:
if (net_dev)
free_netdev(net_dev);
alloc_etherdev_mq_failed:
- devm_kfree(dev, dpa_bp);
+ if (atomic_read(&dpa_bp->refs) == 0)
+ devm_kfree(dev, dpa_bp);
return err;
}