OMAP: SPI: Fix the trying to free nonexistent resource error
Shubhrajyoti D [Mon, 24 Oct 2011 10:24:24 +0000 (15:24 +0530)]
commit 1458d160de3f1862aeaac57447ba96e7857ac52b upstream.

Currently there is a request_mem_region(r->start, ..
followed by r->start += pdata->regs_offset;

And then in remove

   r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   release_mem_region(r->start, resource_size(r));

Here the offset addition is not taken care. Fix the code for the
same.

Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

drivers/spi/spi-omap2-mcspi.c

index fde3a2d..322be7a 100644 (file)
@@ -1116,15 +1116,16 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
                status = -ENODEV;
                goto err1;
        }
+
+       r->start += pdata->regs_offset;
+       r->end += pdata->regs_offset;
+       mcspi->phys = r->start;
        if (!request_mem_region(r->start, resource_size(r),
                                dev_name(&pdev->dev))) {
                status = -EBUSY;
                goto err1;
        }
 
-       r->start += pdata->regs_offset;
-       r->end += pdata->regs_offset;
-       mcspi->phys = r->start;
        mcspi->base = ioremap(r->start, resource_size(r));
        if (!mcspi->base) {
                dev_dbg(&pdev->dev, "can't ioremap MCSPI\n");