USB: musb: unmap base if we can't probe
authorFelipe Balbi <felipe.balbi@nokia.com>
Thu, 21 Jan 2010 13:33:57 +0000 (15:33 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 2 Mar 2010 22:54:43 +0000 (14:54 -0800)
when probe() fails, we should iounmap() the mapped address.

Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/musb/musb_core.c

index 3e9b3b0e9c0d7e3e18eecb7ad6d9317bbe240ada..de7b3770f6ee99e67640dc0edb4d984d8138f073 100644 (file)
@@ -2110,6 +2110,7 @@ static int __init musb_probe(struct platform_device *pdev)
 {
        struct device   *dev = &pdev->dev;
        int             irq = platform_get_irq(pdev, 0);
+       int             status;
        struct resource *iomem;
        void __iomem    *base;
 
@@ -2127,7 +2128,12 @@ static int __init musb_probe(struct platform_device *pdev)
        /* clobbered by use_dma=n */
        orig_dma_mask = dev->dma_mask;
 #endif
-       return musb_init_controller(dev, irq, base);
+
+       status = musb_init_controller(dev, irq, base);
+       if (status < 0)
+               iounmap(base);
+
+       return status;
 }
 
 static int __exit musb_remove(struct platform_device *pdev)