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> --- drivers/mmc/host/pxamci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c index 7257738..b6e7e64 100644 --- a/drivers/mmc/host/pxamci.c +++ b/drivers/mmc/host/pxamci.c @@ -774,7 +774,7 @@ err_gpio_ro: } if (mmc) mmc_free_host(mmc); - release_resource(r); + release_mem_region(r->start, resource_size(r)); return ret; } @@ -824,7 +824,7 @@ static int pxamci_remove(struct platform_device *pdev) clk_put(host->clk); - release_resource(host->res); + release_mem_region(host->res->start, resource_size(host->res)); mmc_free_host(mmc); } -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html