From: Markus Elfring <elfr...@users.sourceforge.net>
Date: Fri, 16 Feb 2018 16:42:26 +0100

Move assignments for the local variables "irq_handler" and "pdata"
so that their setting will only be performed after a call
of the function "devm_kzalloc" succeeded by this function.
Thus adjust a corresponding if statement.

Signed-off-by: Markus Elfring <elfr...@users.sourceforge.net>
---
 drivers/ata/pata_arasan_cf.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
index ebecab8c3f36..27f241b1b1b1 100644
--- a/drivers/ata/pata_arasan_cf.c
+++ b/drivers/ata/pata_arasan_cf.c
@@ -790,12 +790,12 @@ static struct ata_port_operations arasan_cf_ops = {
 static int arasan_cf_probe(struct platform_device *pdev)
 {
        struct arasan_cf_dev *acdev;
-       struct arasan_cf_pdata *pdata = dev_get_platdata(&pdev->dev);
+       struct arasan_cf_pdata *pdata;
        struct ata_host *host;
        struct ata_port *ap;
        struct resource *res;
        u32 quirk;
-       irq_handler_t irq_handler = NULL;
+       irq_handler_t irq_handler;
        int ret;
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -812,6 +812,7 @@ static int arasan_cf_probe(struct platform_device *pdev)
        if (!acdev)
                return -ENOMEM;
 
+       pdata = dev_get_platdata(&pdev->dev);
        if (pdata)
                quirk = pdata->quirk;
        else
@@ -819,10 +820,12 @@ static int arasan_cf_probe(struct platform_device *pdev)
 
        /* if irq is 0, support only PIO */
        acdev->irq = platform_get_irq(pdev, 0);
-       if (acdev->irq)
+       if (acdev->irq) {
                irq_handler = arasan_cf_interrupt;
-       else
+       } else {
                quirk |= CF_BROKEN_MWDMA | CF_BROKEN_UDMA;
+               irq_handler = NULL;
+       }
 
        acdev->pbase = res->start;
        acdev->vbase = devm_ioremap_nocache(&pdev->dev, res->start,
-- 
2.16.1

Reply via email to