From f50c051f09223bb7c7ead72828054156beb7b030 Mon Sep 17 00:00:00 2001 From: Ioana Radulescu Date: Fri, 4 Oct 2013 12:51:22 +0300 Subject: 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 Change-Id: Ica7b995ecf31a878a9e7685ec905119f1c38f17b Reviewed-on: http://git.am.freescale.net:8181/5186 Tested-by: Review Code-CDREVIEW Reviewed-by: Bogdan Hamciuc Reviewed-by: Cristian-Constantin Sovaiala Reviewed-by: Rivera Jose-B46482 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; } -- cgit v0.10.2