2012-02-17 14:52:18

by Bernhard Walle

[permalink] [raw]
Subject: [PATCH] mtd: omap2: Release memory region in .remove function

When the driver is compiled as module, it's not possible to unload and
reload the driver again:

omap2-nand: probe of omap2-nand.0 failed with error -16

This patch fixes the problem because it releases the memory region, so
that it can be requested again.

Signed-off-by: Bernhard Walle <[email protected]>
---
drivers/mtd/nand/omap2.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
index b3a883e..7dfcf68 100644
--- a/drivers/mtd/nand/omap2.c
+++ b/drivers/mtd/nand/omap2.c
@@ -1132,6 +1132,7 @@ static int omap_nand_remove(struct platform_device *pdev)
/* Release NAND device, its internal structures and partitions */
nand_release(&info->mtd);
iounmap(info->nand.IO_ADDR_R);
+ release_mem_region(info->phys_base, NAND_IO_SIZE);
kfree(&info->mtd);
return 0;
}
--
1.7.9.1


2012-02-17 15:22:21

by Shubhrajyoti Datta

[permalink] [raw]
Subject: Re: [PATCH] mtd: omap2: Release memory region in .remove function

On Fri, Feb 17, 2012 at 8:19 PM, Bernhard Walle <[email protected]> wrote:
> When the driver is compiled as module, it's not possible to unload and
> reload the driver again:
>
> ? ?omap2-nand: probe of omap2-nand.0 failed with error -16
>
Looks right to me
Reviewed-by: Shubhrajyoti D <[email protected]>

> This patch fixes the problem because it releases the memory region, so
> that it can be requested again.
>
> Signed-off-by: Bernhard Walle <[email protected]>
> ---
> ?drivers/mtd/nand/omap2.c | ? ?1 +
> ?1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
> index b3a883e..7dfcf68 100644
> --- a/drivers/mtd/nand/omap2.c
> +++ b/drivers/mtd/nand/omap2.c
> @@ -1132,6 +1132,7 @@ static int omap_nand_remove(struct platform_device *pdev)
> ? ? ? ?/* Release NAND device, its internal structures and partitions */
> ? ? ? ?nand_release(&info->mtd);
> ? ? ? ?iounmap(info->nand.IO_ADDR_R);
> + ? ? ? release_mem_region(info->phys_base, NAND_IO_SIZE);
> ? ? ? ?kfree(&info->mtd);
> ? ? ? ?return 0;
> ?}
> --
> 1.7.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to [email protected]
> More majordomo info at ?http://vger.kernel.org/majordomo-info.html