Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drivers/video: Convert release_resource to release_mem_region

Request_mem_region should be used with release_mem_region, not
release_resource.

The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@s exists@
expression e1,e2,e3,e4,e;
@@

*e4 = request_mem_region(e1,e2,e3)
... when != e4 = e
*release_resource(e4);
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

authored by

Julia Lawall and committed by
Paul Mundt
683e7cdc 94cd1ae2

+4 -8
+2 -4
drivers/video/s3c-fb.c
··· 1449 1449 iounmap(sfb->regs); 1450 1450 1451 1451 err_req_region: 1452 - release_resource(sfb->regs_res); 1453 - kfree(sfb->regs_res); 1452 + release_mem_region(sfb->regs_res->start, resource_size(sfb->regs_res)); 1454 1453 1455 1454 err_clk: 1456 1455 clk_disable(sfb->bus_clk); ··· 1485 1486 clk_disable(sfb->bus_clk); 1486 1487 clk_put(sfb->bus_clk); 1487 1488 1488 - release_resource(sfb->regs_res); 1489 - kfree(sfb->regs_res); 1489 + release_mem_region(sfb->regs_res->start, resource_size(sfb->regs_res)); 1490 1490 1491 1491 kfree(sfb); 1492 1492
+2 -4
drivers/video/sh7760fb.c
··· 551 551 free_irq(par->irq, &par->vsync); 552 552 iounmap(par->base); 553 553 out_res: 554 - release_resource(par->ioarea); 555 - kfree(par->ioarea); 554 + release_mem_region(res->start, resource_size(res)); 556 555 out_fb: 557 556 framebuffer_release(info); 558 557 return ret; ··· 569 570 if (par->irq >= 0) 570 571 free_irq(par->irq, par); 571 572 iounmap(par->base); 572 - release_resource(par->ioarea); 573 - kfree(par->ioarea); 573 + release_mem_region(par->ioarea->start, resource_size(par->ioarea)); 574 574 framebuffer_release(info); 575 575 platform_set_drvdata(dev, NULL); 576 576