Commit ff540d02 authored by Sascha Hauer's avatar Sascha Hauer Committed by Jeff Garzik
Browse files

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: default avatarSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 50f5a341
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -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)