diff options
author | Ioana Radulescu <ruxandra.radulescu@freescale.com> | 2013-10-04 09:51:22 (GMT) |
---|---|---|
committer | J. German Rivera <German.Rivera@freescale.com> | 2013-10-08 19:08:35 (GMT) |
commit | f50c051f09223bb7c7ead72828054156beb7b030 (patch) | |
tree | 8ef28ac009cc66af259c93617306496d2881bff6 /drivers/net | |
parent | 79408cc8e69366500158a4bf07fb46c29a6ea226 (diff) | |
download | linux-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.c | 3 |
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; } |