From 6970c7d5d0fbf914ff300f45273cbdf83c86c2ed Mon Sep 17 00:00:00 2001 From: Madalin Bucur Date: Thu, 20 Nov 2014 17:04:59 +0200 Subject: dpaa_eth: make use of devm_alloc_percpu() Use resource managed variant of alloc_percpu(). Signed-off-by: Madalin Bucur Change-Id: I51f3fe816792535bdf01827c77a6f504f9c22e7a Reviewed-on: http://git.am.freescale.net:8181/24141 Reviewed-by: Madalin-Cristian Bucur Tested-by: Madalin-Cristian Bucur diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c index e0fad81..56d4dc9 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c @@ -771,7 +771,7 @@ dpa_priv_bp_probe(struct device *dev) return ERR_PTR(-ENOMEM); } - dpa_bp->percpu_count = alloc_percpu(*dpa_bp->percpu_count); + dpa_bp->percpu_count = devm_alloc_percpu(dev, *dpa_bp->percpu_count); dpa_bp->target_count = CONFIG_FSL_DPAA_ETH_MAX_BUF_COUNT; dpa_bp->seed_cb = dpa_bp_priv_seed; @@ -1044,10 +1044,10 @@ dpaa_eth_priv_probe(struct platform_device *_of_dev) } #endif - priv->percpu_priv = alloc_percpu(*priv->percpu_priv); + priv->percpu_priv = devm_alloc_percpu(dev, *priv->percpu_priv); if (priv->percpu_priv == NULL) { - dev_err(dev, "alloc_percpu() failed\n"); + dev_err(dev, "devm_alloc_percpu() failed\n"); err = -ENOMEM; goto alloc_percpu_failed; } @@ -1080,11 +1080,10 @@ dpaa_eth_priv_probe(struct platform_device *_of_dev) netdev_init_failed: napi_add_failed: dpa_private_napi_del(net_dev); - free_percpu(priv->percpu_priv); +alloc_percpu_failed: #ifdef CONFIG_FMAN_PFC pfc_mapping_failed: #endif -alloc_percpu_failed: dpa_fq_free(dev, &priv->dpa_fq_list); fq_alloc_failed: qman_release_cgrid(priv->ingress_cgr.cgrid); @@ -1098,7 +1097,6 @@ get_channel_failed: dpa_bp_free(priv, priv->dpa_bp); bp_create_failed: fq_probe_failed: - devm_kfree(dev, buf_layout); alloc_failed: mac_probe_failed: dev_set_drvdata(dev, NULL); diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c index b1dc9c0..b7a7791 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c @@ -516,7 +516,6 @@ int __cold dpa_remove(struct platform_device *of_dev) err = dpa_fq_free(dev, &priv->dpa_fq_list); dpa_private_napi_del(net_dev); - free_percpu(priv->percpu_priv); dpa_bp_free(priv, priv->dpa_bp); diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_generic.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_generic.c index 2713acb..a706a89 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_generic.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_generic.c @@ -976,7 +976,8 @@ static int dpa_generic_rx_bp_probe(struct platform_device *_of_dev, goto _return_of_node_put; } - bp[i].percpu_count = alloc_percpu(*(bp[i].percpu_count)); + bp[i].percpu_count = devm_alloc_percpu(dev, + *bp[i].percpu_count); } buf_layout = devm_kzalloc(dev, sizeof(*buf_layout), GFP_KERNEL); @@ -1042,7 +1043,7 @@ int dpa_generic_tx_bp_probe(struct platform_device *_of_dev, } bp->size = dpa_bp_size(buf_layout); - bp->percpu_count = alloc_percpu(*bp->percpu_count); + bp->percpu_count = devm_alloc_percpu(dev, *bp->percpu_count); bp->target_count = CONFIG_FSL_DPAA_ETH_MAX_BUF_COUNT; *draining_tx_bp = bp; @@ -1365,7 +1366,6 @@ static int dpa_generic_remove(struct platform_device *of_dev) #endif dpa_private_napi_del(net_dev); - free_percpu(priv->percpu_priv); /* TODO: this is for private dirver also; make generic */ #if 0 @@ -1465,9 +1465,9 @@ static int dpa_generic_eth_probe(struct platform_device *_of_dev) priv->mac_dev = NULL; - priv->percpu_priv = alloc_percpu(*priv->percpu_priv); + priv->percpu_priv = devm_alloc_percpu(dev, *priv->percpu_priv); if (priv->percpu_priv == NULL) { - dev_err(dev, "alloc_percpu() failed\n"); + dev_err(dev, "devm_alloc_percpu() failed\n"); err = -ENOMEM; goto alloc_percpu_failed; } @@ -1495,8 +1495,6 @@ static int dpa_generic_eth_probe(struct platform_device *_of_dev) netdev_init_failed: napi_add_failed: dpa_generic_napi_del(netdev); - if (netdev) - free_percpu(priv->percpu_priv); alloc_percpu_failed: if (netdev) dpa_fq_free(dev, &priv->dpa_fq_list); diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c index 83cc8a6..5f6b693 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c @@ -428,10 +428,10 @@ static int dpaa_eth_macless_probe(struct platform_device *_of_dev) priv->tx_headroom = DPA_DEFAULT_TX_HEADROOM; - priv->percpu_priv = alloc_percpu(*priv->percpu_priv); + priv->percpu_priv = devm_alloc_percpu(dev, *priv->percpu_priv); if (priv->percpu_priv == NULL) { - dev_err(dev, "alloc_percpu() failed\n"); + dev_err(dev, "devm_alloc_percpu() failed\n"); err = -ENOMEM; goto alloc_percpu_failed; } @@ -452,8 +452,6 @@ static int dpaa_eth_macless_probe(struct platform_device *_of_dev) return 0; netdev_init_failed: - if (net_dev) - free_percpu(priv->percpu_priv); alloc_percpu_failed: fq_alloc_failed: if (net_dev) diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c index f581e97..d05c607 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c @@ -801,10 +801,10 @@ dpaa_eth_shared_probe(struct platform_device *_of_dev) buf_layout, dev); /* Now we need to initialize either a private or shared interface */ - priv->percpu_priv = alloc_percpu(*priv->percpu_priv); + priv->percpu_priv = devm_alloc_percpu(dev, *priv->percpu_priv); if (priv->percpu_priv == NULL) { - dev_err(dev, "alloc_percpu() failed\n"); + dev_err(dev, "devm_alloc_percpu() failed\n"); err = -ENOMEM; goto alloc_percpu_failed; } @@ -826,8 +826,6 @@ dpaa_eth_shared_probe(struct platform_device *_of_dev) return 0; netdev_init_failed: - if (net_dev) - free_percpu(priv->percpu_priv); alloc_percpu_failed: fq_alloc_failed: if (net_dev) { -- cgit v0.10.2