diff mbox

[v2,7/9] net: mvmdio: Use devm_* API to simplify the code

Message ID 1399396858-14551-8-git-send-email-ezequiel.garcia@free-electrons.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Ezequiel Garcia May 6, 2014, 5:20 p.m. UTC
This commit makes use of devm_kmalloc() for memory allocation and the
recently introduced devm_mdiobus_alloc() API to simplify driver's code.
While here, remove a redundant out of memory error message.

Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
---
 drivers/net/ethernet/marvell/mvmdio.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

Comments

Sergei Shtylyov May 6, 2014, 6:01 p.m. UTC | #1
Hello.

On 05/06/2014 09:20 PM, Ezequiel Garcia wrote:

> This commit makes use of devm_kmalloc() for memory allocation and the
> recently introduced devm_mdiobus_alloc() API to simplify driver's code.
> While here, remove a redundant out of memory error message.

> Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
> ---
>   drivers/net/ethernet/marvell/mvmdio.c | 18 ++++++------------
>   1 file changed, 6 insertions(+), 12 deletions(-)

> diff --git a/drivers/net/ethernet/marvell/mvmdio.c b/drivers/net/ethernet/marvell/mvmdio.c
> index b161a52..995e182 100644
> --- a/drivers/net/ethernet/marvell/mvmdio.c
> +++ b/drivers/net/ethernet/marvell/mvmdio.c
[...]
> @@ -208,11 +207,10 @@ static int orion_mdio_probe(struct platform_device *pdev)
>   		 dev_name(&pdev->dev));
>   	bus->parent = &pdev->dev;
>
> -	bus->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);
> -	if (!bus->irq) {
> -		mdiobus_free(bus);
> +	bus->irq = devm_kmalloc(&pdev->dev,
> +				sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);

    I'd rather use devm_kmalloc_array().

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ezequiel Garcia May 16, 2014, 11:48 p.m. UTC | #2
On 06 May 10:01 PM, Sergei Shtylyov wrote:
> On 05/06/2014 09:20 PM, Ezequiel Garcia wrote:
> 
> >This commit makes use of devm_kmalloc() for memory allocation and the
> >recently introduced devm_mdiobus_alloc() API to simplify driver's code.
> >While here, remove a redundant out of memory error message.
> 
> >Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> >Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
> >---
> >  drivers/net/ethernet/marvell/mvmdio.c | 18 ++++++------------
> >  1 file changed, 6 insertions(+), 12 deletions(-)
> 
> >diff --git a/drivers/net/ethernet/marvell/mvmdio.c b/drivers/net/ethernet/marvell/mvmdio.c
> >index b161a52..995e182 100644
> >--- a/drivers/net/ethernet/marvell/mvmdio.c
> >+++ b/drivers/net/ethernet/marvell/mvmdio.c
> [...]
> >@@ -208,11 +207,10 @@ static int orion_mdio_probe(struct platform_device *pdev)
> >  		 dev_name(&pdev->dev));
> >  	bus->parent = &pdev->dev;
> >
> >-	bus->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);
> >-	if (!bus->irq) {
> >-		mdiobus_free(bus);
> >+	bus->irq = devm_kmalloc(&pdev->dev,
> >+				sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);
> 
>    I'd rather use devm_kmalloc_array().
> 

Sure. I'll prepare another version.

Thanks,
diff mbox

Patch

diff --git a/drivers/net/ethernet/marvell/mvmdio.c b/drivers/net/ethernet/marvell/mvmdio.c
index b161a52..995e182 100644
--- a/drivers/net/ethernet/marvell/mvmdio.c
+++ b/drivers/net/ethernet/marvell/mvmdio.c
@@ -195,11 +195,10 @@  static int orion_mdio_probe(struct platform_device *pdev)
 		return -ENODEV;
 	}
 
-	bus = mdiobus_alloc_size(sizeof(struct orion_mdio_dev));
-	if (!bus) {
-		dev_err(&pdev->dev, "Cannot allocate MDIO bus\n");
+	bus = devm_mdiobus_alloc_size(&pdev->dev,
+				      sizeof(struct orion_mdio_dev));
+	if (!bus)
 		return -ENOMEM;
-	}
 
 	bus->name = "orion_mdio_bus";
 	bus->read = orion_mdio_read;
@@ -208,11 +207,10 @@  static int orion_mdio_probe(struct platform_device *pdev)
 		 dev_name(&pdev->dev));
 	bus->parent = &pdev->dev;
 
-	bus->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);
-	if (!bus->irq) {
-		mdiobus_free(bus);
+	bus->irq = devm_kmalloc(&pdev->dev,
+				sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);
+	if (!bus->irq)
 		return -ENOMEM;
-	}
 
 	for (i = 0; i < PHY_MAX_ADDR; i++)
 		bus->irq[i] = PHY_POLL;
@@ -261,8 +259,6 @@  static int orion_mdio_probe(struct platform_device *pdev)
 out_mdio:
 	if (!IS_ERR(dev->clk))
 		clk_disable_unprepare(dev->clk);
-	kfree(bus->irq);
-	mdiobus_free(bus);
 	return ret;
 }
 
@@ -273,8 +269,6 @@  static int orion_mdio_remove(struct platform_device *pdev)
 
 	writel(0, dev->regs + MVMDIO_ERR_INT_MASK);
 	mdiobus_unregister(bus);
-	kfree(bus->irq);
-	mdiobus_free(bus);
 	if (!IS_ERR(dev->clk))
 		clk_disable_unprepare(dev->clk);