mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
[linux-2.6-microblaze.git] / drivers / mfd / asic3.c
index 8d58c8d..56338f9 100644 (file)
@@ -906,14 +906,14 @@ static int __init asic3_mfd_probe(struct platform_device *pdev,
                ret = mfd_add_devices(&pdev->dev, pdev->id,
                        &asic3_cell_ds1wm, 1, mem, asic->irq_base, NULL);
                if (ret < 0)
-                       goto out;
+                       goto out_unmap;
        }
 
        if (mem_sdio && (irq >= 0)) {
                ret = mfd_add_devices(&pdev->dev, pdev->id,
                        &asic3_cell_mmc, 1, mem_sdio, irq, NULL);
                if (ret < 0)
-                       goto out;
+                       goto out_unmap;
        }
 
        ret = 0;
@@ -927,8 +927,12 @@ static int __init asic3_mfd_probe(struct platform_device *pdev,
                ret = mfd_add_devices(&pdev->dev, 0,
                        asic3_cell_leds, ASIC3_NUM_LEDS, NULL, 0, NULL);
        }
+       return ret;
 
- out:
+out_unmap:
+       if (asic->tmio_cnf)
+               iounmap(asic->tmio_cnf);
+out:
        return ret;
 }