staging: fsl-mc/dpio: Fix the error handling in probe()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 27 Apr 2018 14:07:33 +0000 (17:07 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 29 Apr 2018 13:25:08 +0000 (15:25 +0200)
First of all devm_memremap() function returns an error pointer, it
doesn't return NULL.  And second we need to set the error code on these
paths.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fsl-mc/bus/dpio/dpio-driver.c

index 9e125769a4e7bf496a4cec90a1f28ae03e68aa49..11a90a90d827d833d7fe6e2ba70b952525838718 100644 (file)
@@ -150,14 +150,16 @@ static int dpaa2_dpio_probe(struct fsl_mc_device *dpio_dev)
        desc.regs_cena = devm_memremap(dev, dpio_dev->regions[1].start,
                                       resource_size(&dpio_dev->regions[1]),
                                       MEMREMAP_WC);
-       if (!desc.regs_cena) {
+       if (IS_ERR(desc.regs_cena)) {
                dev_err(dev, "devm_memremap failed\n");
+               err = PTR_ERR(desc.regs_cena);
                goto err_allocate_irqs;
        }
 
        desc.regs_cinh = devm_ioremap(dev, dpio_dev->regions[1].start,
                                      resource_size(&dpio_dev->regions[1]));
        if (!desc.regs_cinh) {
+               err = -ENOMEM;
                dev_err(dev, "devm_ioremap failed\n");
                goto err_allocate_irqs;
        }
@@ -175,6 +177,7 @@ static int dpaa2_dpio_probe(struct fsl_mc_device *dpio_dev)
        priv->io = dpaa2_io_create(&desc);
        if (!priv->io) {
                dev_err(dev, "dpaa2_io_create failed\n");
+               err = -ENOMEM;
                goto err_dpaa2_io_create;
        }