netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put
@ 2011-06-01 17:10 Julia Lawall
  2011-06-01 17:26 ` Joe Perches
  2011-06-01 17:54 ` walter harms
  0 siblings, 2 replies; 9+ messages in thread
From: Julia Lawall @ 2011-06-01 17:10 UTC (permalink / raw)
  To: Wolfgang Grandegger; +Cc: kernel-janitors, socketcan-core, netdev, linux-kernel

From: Julia Lawall <julia@diku.dk>

The failed_get label is used after the call to clk_get has succeeded, so it
should be moved up above the 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 <julia@diku.dk>

---
 drivers/net/can/flexcan.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index d499056..121739c 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -978,8 +978,8 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
  failed_map:
 	release_mem_region(mem->start, mem_size);
  failed_req:
-	clk_put(clk);
  failed_get:
+	clk_put(clk);
  failed_clock:
 	return err;
 }

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put
  2011-06-01 17:10 [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put Julia Lawall
@ 2011-06-01 17:26 ` Joe Perches
  2011-06-01 20:08   ` Julia Lawall
  2011-06-01 17:54 ` walter harms
  1 sibling, 1 reply; 9+ messages in thread
From: Joe Perches @ 2011-06-01 17:26 UTC (permalink / raw)
  To: Julia Lawall
  Cc: Wolfgang Grandegger, kernel-janitors, socketcan-core, netdev,
	linux-kernel

On Wed, 2011-06-01 at 19:10 +0200, Julia Lawall wrote:
> The failed_get label is used after the call to clk_get has succeeded, so it
> should be moved up above the call to clk_put.
[]
> diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
[]
> @@ -978,8 +978,8 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
>   failed_map:
>  	release_mem_region(mem->start, mem_size);
>   failed_req:
> -	clk_put(clk);
>   failed_get:
> +	clk_put(clk);
>   failed_clock:
>  	return err;

If this is correct, it might be better to rename all the
uses of failed_req to failed_get and delete label failed_req.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put
  2011-06-01 17:10 [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put Julia Lawall
  2011-06-01 17:26 ` Joe Perches
@ 2011-06-01 17:54 ` walter harms
       [not found]   ` <4DE67CBF.5080006-fPG8STNUNVg@public.gmane.org>
  1 sibling, 1 reply; 9+ messages in thread
From: walter harms @ 2011-06-01 17:54 UTC (permalink / raw)
  To: Julia Lawall
  Cc: Wolfgang Grandegger, kernel-janitors, socketcan-core, netdev,
	linux-kernel



Am 01.06.2011 19:10, schrieb Julia Lawall:
> From: Julia Lawall <julia@diku.dk>
> 
> The failed_get label is used after the call to clk_get has succeeded, so it
> should be moved up above the 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 <julia@diku.dk>
> 
> ---
>  drivers/net/can/flexcan.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
> index d499056..121739c 100644
> --- a/drivers/net/can/flexcan.c
> +++ b/drivers/net/can/flexcan.c
> @@ -978,8 +978,8 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
>   failed_map:
>  	release_mem_region(mem->start, mem_size);
>   failed_req:
> -	clk_put(clk);
>   failed_get:
> +	clk_put(clk);
>   failed_clock:
>  	return err;
>  }
> 

So failed_req == failed_get, is that intended ?

re,
 wh

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put
       [not found]   ` <4DE67CBF.5080006-fPG8STNUNVg@public.gmane.org>
@ 2011-06-01 20:04     ` Julia Lawall
  0 siblings, 0 replies; 9+ messages in thread
From: Julia Lawall @ 2011-06-01 20:04 UTC (permalink / raw)
  To: walter harms
  Cc: socketcan-core-0fE9KPoRgkgATYTw5x5z8w,
	netdev-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, Wolfgang Grandegger

On Wed, 1 Jun 2011, walter harms wrote:

> 
> 
> Am 01.06.2011 19:10, schrieb Julia Lawall:
> > From: Julia Lawall <julia-dAYI7NvHqcQ@public.gmane.org>
> > 
> > The failed_get label is used after the call to clk_get has succeeded, so it
> > should be moved up above the 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 <julia-dAYI7NvHqcQ@public.gmane.org>
> > 
> > ---
> >  drivers/net/can/flexcan.c |    2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
> > index d499056..121739c 100644
> > --- a/drivers/net/can/flexcan.c
> > +++ b/drivers/net/can/flexcan.c
> > @@ -978,8 +978,8 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
> >   failed_map:
> >  	release_mem_region(mem->start, mem_size);
> >   failed_req:
> > -	clk_put(clk);
> >   failed_get:
> > +	clk_put(clk);
> >   failed_clock:
> >  	return err;
> >  }
> > 
> 
> So failed_req == failed_get, is that intended ?

I have the impression that it is.  failed_req comes after successful 
calls to platform_get_resource and platform_get_irq, which don't allocate 
anything.

julia

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put
  2011-06-01 17:26 ` Joe Perches
@ 2011-06-01 20:08   ` Julia Lawall
  2011-06-01 20:11     ` David Miller
  0 siblings, 1 reply; 9+ messages in thread
From: Julia Lawall @ 2011-06-01 20:08 UTC (permalink / raw)
  To: Joe Perches
  Cc: socketcan-core-0fE9KPoRgkgATYTw5x5z8w,
	netdev-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, Wolfgang Grandegger

On Wed, 1 Jun 2011, Joe Perches wrote:

> On Wed, 2011-06-01 at 19:10 +0200, Julia Lawall wrote:
> > The failed_get label is used after the call to clk_get has succeeded, so it
> > should be moved up above the call to clk_put.
> []
> > diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
> []
> > @@ -978,8 +978,8 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
> >   failed_map:
> >  	release_mem_region(mem->start, mem_size);
> >   failed_req:
> > -	clk_put(clk);
> >   failed_get:
> > +	clk_put(clk);
> >   failed_clock:
> >  	return err;
> 
> If this is correct, it might be better to rename all the
> uses of failed_req to failed_get and delete label failed_req.

As I replied to Walter Harms, I believe it is correct, because I don't see 
anything in the called functions that needs to be freed.  I can redo the 
patch to eliminate the label.

julia

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put
  2011-06-01 20:08   ` Julia Lawall
@ 2011-06-01 20:11     ` David Miller
       [not found]       ` <20110601.131136.391831410750786951.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: David Miller @ 2011-06-01 20:11 UTC (permalink / raw)
  To: julia; +Cc: joe, wg, kernel-janitors, socketcan-core, netdev, linux-kernel

From: Julia Lawall <julia@diku.dk>
Date: Wed, 1 Jun 2011 22:08:46 +0200 (CEST)

> On Wed, 1 Jun 2011, Joe Perches wrote:
> 
>> On Wed, 2011-06-01 at 19:10 +0200, Julia Lawall wrote:
>> > The failed_get label is used after the call to clk_get has succeeded, so it
>> > should be moved up above the call to clk_put.
>> []
>> > diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
>> []
>> > @@ -978,8 +978,8 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
>> >   failed_map:
>> >  	release_mem_region(mem->start, mem_size);
>> >   failed_req:
>> > -	clk_put(clk);
>> >   failed_get:
>> > +	clk_put(clk);
>> >   failed_clock:
>> >  	return err;
>> 
>> If this is correct, it might be better to rename all the
>> uses of failed_req to failed_get and delete label failed_req.
> 
> As I replied to Walter Harms, I believe it is correct, because I don't see 
> anything in the called functions that needs to be freed.  I can redo the 
> patch to eliminate the label.

Please do.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put
       [not found]       ` <20110601.131136.391831410750786951.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
@ 2011-06-01 20:13         ` Julia Lawall
  2011-06-02  5:48         ` Julia Lawall
  1 sibling, 0 replies; 9+ messages in thread
From: Julia Lawall @ 2011-06-01 20:13 UTC (permalink / raw)
  To: David Miller
  Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	socketcan-core-0fE9KPoRgkgATYTw5x5z8w, joe-6d6DIl74uiNBDgjK7y7TUQ,
	wg-5Yr1BZd7O62+XT7JhA+gdA

On Wed, 1 Jun 2011, David Miller wrote:

> From: Julia Lawall <julia-dAYI7NvHqcQ@public.gmane.org>
> Date: Wed, 1 Jun 2011 22:08:46 +0200 (CEST)
> 
> > On Wed, 1 Jun 2011, Joe Perches wrote:
> > 
> >> On Wed, 2011-06-01 at 19:10 +0200, Julia Lawall wrote:
> >> > The failed_get label is used after the call to clk_get has succeeded, so it
> >> > should be moved up above the call to clk_put.
> >> []
> >> > diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
> >> []
> >> > @@ -978,8 +978,8 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
> >> >   failed_map:
> >> >  	release_mem_region(mem->start, mem_size);
> >> >   failed_req:
> >> > -	clk_put(clk);
> >> >   failed_get:
> >> > +	clk_put(clk);
> >> >   failed_clock:
> >> >  	return err;
> >> 
> >> If this is correct, it might be better to rename all the
> >> uses of failed_req to failed_get and delete label failed_req.
> > 
> > As I replied to Walter Harms, I believe it is correct, because I don't see 
> > anything in the called functions that needs to be freed.  I can redo the 
> > patch to eliminate the label.
> 
> Please do.

OK, I will do it tomorrow.

julia

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put
       [not found]       ` <20110601.131136.391831410750786951.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
  2011-06-01 20:13         ` Julia Lawall
@ 2011-06-02  5:48         ` Julia Lawall
       [not found]           ` <Pine.LNX.4.64.1106020748020.22932-QfmoRoYWmW9knbxzx/v8hQ@public.gmane.org>
  1 sibling, 1 reply; 9+ messages in thread
From: Julia Lawall @ 2011-06-02  5:48 UTC (permalink / raw)
  To: David Miller
  Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	socketcan-core-0fE9KPoRgkgATYTw5x5z8w, joe-6d6DIl74uiNBDgjK7y7TUQ,
	wg-5Yr1BZd7O62+XT7JhA+gdA, wharms-fPG8STNUNVg

From: Julia Lawall <julia-dAYI7NvHqcQ@public.gmane.org>

The failed_get label is used after the call to clk_get has succeeded, so it
should be moved up above the call to clk_put.

The failed_req labels doesn't do anything different than failed_get, so
delete it.

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 <julia-dAYI7NvHqcQ@public.gmane.org>

---
 drivers/net/can/flexcan.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index d499056..1767811 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -923,7 +923,7 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
 	mem_size = resource_size(mem);
 	if (!request_mem_region(mem->start, mem_size, pdev->name)) {
 		err = -EBUSY;
-		goto failed_req;
+		goto failed_get;
 	}
 
 	base = ioremap(mem->start, mem_size);
@@ -977,9 +977,8 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
 	iounmap(base);
  failed_map:
 	release_mem_region(mem->start, mem_size);
- failed_req:
-	clk_put(clk);
  failed_get:
+	clk_put(clk);
  failed_clock:
 	return err;
 }

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put
       [not found]           ` <Pine.LNX.4.64.1106020748020.22932-QfmoRoYWmW9knbxzx/v8hQ@public.gmane.org>
@ 2011-06-02  7:10             ` David Miller
  0 siblings, 0 replies; 9+ messages in thread
From: David Miller @ 2011-06-02  7:10 UTC (permalink / raw)
  To: julia-dAYI7NvHqcQ
  Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	socketcan-core-0fE9KPoRgkgATYTw5x5z8w, joe-6d6DIl74uiNBDgjK7y7TUQ,
	wg-5Yr1BZd7O62+XT7JhA+gdA, wharms-fPG8STNUNVg

From: Julia Lawall <julia-dAYI7NvHqcQ@public.gmane.org>
Date: Thu, 2 Jun 2011 07:48:50 +0200 (CEST)

> From: Julia Lawall <julia-dAYI7NvHqcQ@public.gmane.org>
> 
> The failed_get label is used after the call to clk_get has succeeded, so it
> should be moved up above the call to clk_put.
> 
> The failed_req labels doesn't do anything different than failed_get, so
> delete it.
> 
> A simplified version of the semantic match that finds this problem is as
> follows: (http://coccinelle.lip6.fr/)
 ...
> Signed-off-by: Julia Lawall <julia-dAYI7NvHqcQ@public.gmane.org>

Applied.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-06-02  7:10 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-01 17:10 [PATCH 4/10] drivers/net/can/flexcan.c: add missing clk_put Julia Lawall
2011-06-01 17:26 ` Joe Perches
2011-06-01 20:08   ` Julia Lawall
2011-06-01 20:11     ` David Miller
     [not found]       ` <20110601.131136.391831410750786951.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2011-06-01 20:13         ` Julia Lawall
2011-06-02  5:48         ` Julia Lawall
     [not found]           ` <Pine.LNX.4.64.1106020748020.22932-QfmoRoYWmW9knbxzx/v8hQ@public.gmane.org>
2011-06-02  7:10             ` David Miller
2011-06-01 17:54 ` walter harms
     [not found]   ` <4DE67CBF.5080006-fPG8STNUNVg@public.gmane.org>
2011-06-01 20:04     ` Julia Lawall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).