Re: [PATCH 1/3] drivers/mmc/host/mvsdio.c: Convert release_resource torelease_mem_region

From: Nicolas Pitre
Date: Tue Mar 22 2011 - 15:04:38 EST


On Tue, 22 Mar 2011, Julia Lawall wrote:

> Request_mem_region should be used with release_mem_region, not
> release_resource.
>
> A semantic patch that partially fixes this problem is as follows:
> (http://coccinelle.lip6.fr/)
>
> // <smpl>
> @b@
> expression x,E;
> @@
>
> x = request_mem_region(x->start,...)
> ... when != release_mem_region(x->start,...)
> when != x = E
> (
> - release_resource(x);
> - kfree(x);
> + release_mem_region(x->start,resource_size(x));
> |
> ?- release_resource(x);
> + release_mem_region(x->start,resource_size(x));
> )
> // </smpl>
>
> Signed-off-by: Julia Lawall <julia@xxxxxxx>

Acked-by: Nicolas Pitre <nico@xxxxxxxxxxx>

> ---
> drivers/mmc/host/mvsdio.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
> index a5bf60e..4606087 100644
> --- a/drivers/mmc/host/mvsdio.c
> +++ b/drivers/mmc/host/mvsdio.c
> @@ -825,7 +825,7 @@ out:
> iounmap(host->base);
> }
> if (r)
> - release_resource(r);
> + release_mem_region(r->start, resource_size(r));
> if (mmc)
> mmc_free_host(mmc);
>
> @@ -850,7 +850,7 @@ static int __exit mvsd_remove(struct platform_device *pdev)
> del_timer_sync(&host->timer);
> mvsd_power_down(host);
> iounmap(host->base);
> - release_resource(host->res);
> + release_mem_region(host->res->start, resource_size(host->res));
> mmc_free_host(mmc);
> }
> platform_set_drvdata(pdev, NULL);
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/