mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 09:04:21 +08:00
pata_imx: cleanup error path
- rename free_priv label to 'err' since priv is allocated with devm_* and not freed here. - add missing 'goto err' in case ata_host_activate fails - add 'ret' variable to return correct error value instead of hardcoded -ENOMEM in error case. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
parent
50f5a3415c
commit
ff540d029a
@ -98,6 +98,7 @@ static int pata_imx_probe(struct platform_device *pdev)
|
||||
struct pata_imx_priv *priv;
|
||||
int irq = 0;
|
||||
struct resource *io_res;
|
||||
int ret;
|
||||
|
||||
io_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
if (io_res == NULL)
|
||||
@ -121,8 +122,10 @@ static int pata_imx_probe(struct platform_device *pdev)
|
||||
clk_prepare_enable(priv->clk);
|
||||
|
||||
host = ata_host_alloc(&pdev->dev, 1);
|
||||
if (!host)
|
||||
goto free_priv;
|
||||
if (!host) {
|
||||
ret = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
|
||||
host->private_data = priv;
|
||||
ap = host->ports[0];
|
||||
@ -135,7 +138,8 @@ static int pata_imx_probe(struct platform_device *pdev)
|
||||
resource_size(io_res));
|
||||
if (!priv->host_regs) {
|
||||
dev_err(&pdev->dev, "failed to map IO/CTL base\n");
|
||||
goto free_priv;
|
||||
ret = -EBUSY;
|
||||
goto err;
|
||||
}
|
||||
|
||||
ap->ioaddr.cmd_addr = priv->host_regs + PATA_IMX_DRIVE_DATA;
|
||||
@ -158,13 +162,17 @@ static int pata_imx_probe(struct platform_device *pdev)
|
||||
priv->host_regs + PATA_IMX_ATA_INT_EN);
|
||||
|
||||
/* activate */
|
||||
return ata_host_activate(host, irq, ata_sff_interrupt, 0,
|
||||
ret = ata_host_activate(host, irq, ata_sff_interrupt, 0,
|
||||
&pata_imx_sht);
|
||||
|
||||
free_priv:
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
return 0;
|
||||
err:
|
||||
clk_disable_unprepare(priv->clk);
|
||||
|
||||
return -ENOMEM;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int pata_imx_remove(struct platform_device *pdev)
|
||||
|
Loading…
Reference in New Issue
Block a user