summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/ibm
diff options
context:
space:
mode:
authorRosen Penev <rosenp@gmail.com>2024-10-30 23:37:22 +0300
committerJakub Kicinski <kuba@kernel.org>2024-11-04 01:37:42 +0300
commite2da0216e55ee25f8f4a582b6ef6a3a4e7867963 (patch)
treefb5a66f72774b05c0a75fbb9bd9ef7ebf333502f /drivers/net/ethernet/ibm
parent9fb40aeeb52171ace8bdceb5f8000ec56d0582a0 (diff)
downloadlinux-e2da0216e55ee25f8f4a582b6ef6a3a4e7867963.tar.xz
net: ibm: emac: zmii: use devm for kzalloc
Simplifies the probe function by removing gotos. Signed-off-by: Rosen Penev <rosenp@gmail.com> Link: https://patch.msgid.link/20241030203727.6039-8-rosenp@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/ibm')
-rw-r--r--drivers/net/ethernet/ibm/emac/zmii.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/drivers/net/ethernet/ibm/emac/zmii.c b/drivers/net/ethernet/ibm/emac/zmii.c
index 03bab3f95fe4..e9097b9ceb3d 100644
--- a/drivers/net/ethernet/ibm/emac/zmii.c
+++ b/drivers/net/ethernet/ibm/emac/zmii.c
@@ -235,29 +235,26 @@ static int zmii_probe(struct platform_device *ofdev)
struct device_node *np = ofdev->dev.of_node;
struct zmii_instance *dev;
struct resource regs;
- int rc;
- rc = -ENOMEM;
- dev = kzalloc(sizeof(struct zmii_instance), GFP_KERNEL);
- if (dev == NULL)
- goto err_gone;
+ dev = devm_kzalloc(&ofdev->dev, sizeof(struct zmii_instance),
+ GFP_KERNEL);
+ if (!dev)
+ return -ENOMEM;
mutex_init(&dev->lock);
dev->ofdev = ofdev;
dev->mode = PHY_INTERFACE_MODE_NA;
- rc = -ENXIO;
if (of_address_to_resource(np, 0, &regs)) {
printk(KERN_ERR "%pOF: Can't get registers address\n", np);
- goto err_free;
+ return -ENXIO;
}
- rc = -ENOMEM;
dev->base = (struct zmii_regs __iomem *)ioremap(regs.start,
sizeof(struct zmii_regs));
- if (dev->base == NULL) {
+ if (!dev->base) {
printk(KERN_ERR "%pOF: Can't map device registers!\n", np);
- goto err_free;
+ return -ENOMEM;
}
/* We may need FER value for autodetection later */
@@ -271,11 +268,6 @@ static int zmii_probe(struct platform_device *ofdev)
platform_set_drvdata(ofdev, dev);
return 0;
-
- err_free:
- kfree(dev);
- err_gone:
- return rc;
}
static void zmii_remove(struct platform_device *ofdev)
@@ -285,7 +277,6 @@ static void zmii_remove(struct platform_device *ofdev)
WARN_ON(dev->users != 0);
iounmap(dev->base);
- kfree(dev);
}
static const struct of_device_id zmii_match[] =