mtd: spear_smi: release memory region during remove
authorShiraz Hashim <shiraz.hashim@st.com>
Fri, 20 Jan 2012 10:35:19 +0000 (11:35 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Mon, 26 Mar 2012 23:14:36 +0000 (00:14 +0100)
Driver must cleanup all held resources during remove. It wasn't
releasing requested memory region.

Signed-off-by: Shiraz Hashim <shiraz.hashim@st.com>
Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/devices/spear_smi.c

index 1eac56cf8ed6430bddae642c4cdc19b5a94f384b..0f0f1ac06493867d58306d0b9a4e20417f7bb258 100644 (file)
@@ -1024,6 +1024,7 @@ static int __devexit spear_smi_remove(struct platform_device *pdev)
 {
        struct spear_smi *dev;
        struct spear_snor_flash *flash;
+       struct resource *smi_base;
        int ret;
        int i, irq;
 
@@ -1055,6 +1056,9 @@ static int __devexit spear_smi_remove(struct platform_device *pdev)
        clk_put(dev->clk);
        iounmap(dev->io_base);
        kfree(dev);
+
+       smi_base = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       release_mem_region(smi_base->start, resource_size(smi_base));
        platform_set_drvdata(pdev, NULL);
 
        return 0;