mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-05 00:25:24 -04:00
net: ibm: emac: mal: 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-11-rosenp@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
c2744ab3ce
commit
3f55d16555
@@ -524,7 +524,8 @@ static int mal_probe(struct platform_device *ofdev)
|
||||
unsigned long irqflags;
|
||||
irq_handler_t hdlr_serr, hdlr_txde, hdlr_rxde;
|
||||
|
||||
mal = kzalloc(sizeof(struct mal_instance), GFP_KERNEL);
|
||||
mal = devm_kzalloc(&ofdev->dev, sizeof(struct mal_instance),
|
||||
GFP_KERNEL);
|
||||
if (!mal)
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -539,8 +540,7 @@ static int mal_probe(struct platform_device *ofdev)
|
||||
printk(KERN_ERR
|
||||
"mal%d: can't find MAL num-tx-chans property!\n",
|
||||
index);
|
||||
err = -ENODEV;
|
||||
goto fail;
|
||||
return -ENODEV;
|
||||
}
|
||||
mal->num_tx_chans = prop[0];
|
||||
|
||||
@@ -549,8 +549,7 @@ static int mal_probe(struct platform_device *ofdev)
|
||||
printk(KERN_ERR
|
||||
"mal%d: can't find MAL num-rx-chans property!\n",
|
||||
index);
|
||||
err = -ENODEV;
|
||||
goto fail;
|
||||
return -ENODEV;
|
||||
}
|
||||
mal->num_rx_chans = prop[0];
|
||||
|
||||
@@ -558,15 +557,13 @@ static int mal_probe(struct platform_device *ofdev)
|
||||
if (dcr_base == 0) {
|
||||
printk(KERN_ERR
|
||||
"mal%d: can't find DCR resource!\n", index);
|
||||
err = -ENODEV;
|
||||
goto fail;
|
||||
return -ENODEV;
|
||||
}
|
||||
mal->dcr_host = dcr_map(ofdev->dev.of_node, dcr_base, 0x100);
|
||||
if (!DCR_MAP_OK(mal->dcr_host)) {
|
||||
printk(KERN_ERR
|
||||
"mal%d: failed to map DCRs !\n", index);
|
||||
err = -ENODEV;
|
||||
goto fail;
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (of_device_is_compatible(ofdev->dev.of_node, "ibm,mcmal-405ez")) {
|
||||
@@ -711,9 +708,6 @@ static int mal_probe(struct platform_device *ofdev)
|
||||
free_netdev(mal->dummy_dev);
|
||||
fail_unmap:
|
||||
dcr_unmap(mal->dcr_host, 0x100);
|
||||
fail:
|
||||
kfree(mal);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -746,10 +740,9 @@ static void mal_remove(struct platform_device *ofdev)
|
||||
|
||||
dma_free_coherent(&ofdev->dev,
|
||||
sizeof(struct mal_descriptor) *
|
||||
(NUM_TX_BUFF * mal->num_tx_chans +
|
||||
NUM_RX_BUFF * mal->num_rx_chans), mal->bd_virt,
|
||||
mal->bd_dma);
|
||||
kfree(mal);
|
||||
(NUM_TX_BUFF * mal->num_tx_chans +
|
||||
NUM_RX_BUFF * mal->num_rx_chans),
|
||||
mal->bd_virt, mal->bd_dma);
|
||||
}
|
||||
|
||||
static const struct of_device_id mal_platform_match[] =
|
||||
|
||||
Reference in New Issue
Block a user