2011-06-01 17:10:29

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 9/10] arch/arm/mach-omap2/clock.c: add missing clk_put

From: Julia Lawall <[email protected]>

Add missing call to clk_put.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@r exists@
expression e1,e2;
statement S;
@@

e1 = clk_get@p1(...);
... when != e1 = e2
when != clk_put(e1)
when any
if (...) { ... when != clk_put(e1)
when != if (...) { ... clk_put(e1) ... }
* return@p3 ...;
} else S
// </smpl>

Signed-off-by: Julia Lawall <[email protected]>

---
arch/arm/mach-omap2/clock.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
index 180299e..bf9c36c 100644
--- a/arch/arm/mach-omap2/clock.c
+++ b/arch/arm/mach-omap2/clock.c
@@ -453,6 +453,7 @@ int __init omap2_clk_switch_mpurate_at_boot(const char *mpurate_ck_name)
if (IS_ERR_VALUE(r)) {
WARN(1, "clock: %s: unable to set MPU rate to %d: %d\n",
mpurate_ck->name, mpurate, r);
+ clk_put(mpurate_ck);
return -EINVAL;
}


2011-06-02 21:26:41

by Paul Walmsley

[permalink] [raw]
Subject: Re: [PATCH 9/10] arch/arm/mach-omap2/clock.c: add missing clk_put

On Wed, 1 Jun 2011, Julia Lawall wrote:

> From: Julia Lawall <[email protected]>
>
> Add missing call to clk_put.
>
> A simplified version of the semantic match that finds this problem is as
> follows: (http://coccinelle.lip6.fr/)
>
> // <smpl>
> @r exists@
> expression e1,e2;
> statement S;
> @@
>
> e1 = clk_get@p1(...);
> ... when != e1 = e2
> when != clk_put(e1)
> when any
> if (...) { ... when != clk_put(e1)
> when != if (...) { ... clk_put(e1) ... }
> * return@p3 ...;
> } else S
> // </smpl>
>
> Signed-off-by: Julia Lawall <[email protected]>

Acked-by: Paul Walmsley <[email protected]>


- Paul