public inbox for kernel-janitors@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 7/8] drivers/media/platform/davinci/vpbe.c: Removes useless kfree()
@ 2012-09-12 12:55 Peter Senna Tschudin
  2012-09-12 13:34 ` Marcos Souza
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Senna Tschudin @ 2012-09-12 12:55 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: kernel-janitors, linux-media, linux-kernel

From: Peter Senna Tschudin <peter.senna@gmail.com>

Remove useless kfree() and clean up code related to the removal.

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

// <smpl>
@r exists@
position p1,p2;
expression x;
@@

if (x@p1 = NULL) { ... kfree@p2(x); ... return ...; }

@unchanged exists@
position r.p1,r.p2;
expression e <= r.x,x,e1;
iterator I;
statement S;
@@

if (x@p1 = NULL) { ... when != I(x,...) S
                        when != e = e1
                        when != e += e1
                        when != e -= e1
                        when != ++e
                        when != --e
                        when != e++
                        when != e--
                        when != &e
   kfree@p2(x); ... return ...; }

@ok depends on unchanged exists@
position any r.p1;
position r.p2;
expression x;
@@

... when != true x@p1 = NULL
kfree@p2(x);

@depends on !ok && unchanged@
position r.p2;
expression x;
@@

*kfree@p2(x);
// </smpl>

Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>

---
 drivers/media/platform/davinci/vpbe.c |    1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/media/platform/davinci/vpbe.c b/drivers/media/platform/davinci/vpbe.c
index c4a82a1..1125a87 100644
--- a/drivers/media/platform/davinci/vpbe.c
+++ b/drivers/media/platform/davinci/vpbe.c
@@ -771,7 +771,6 @@ static int vpbe_initialize(struct device *dev, struct vpbe_device *vpbe_dev)
 	return 0;
 
 vpbe_fail_amp_register:
-	kfree(vpbe_dev->amp);
 vpbe_fail_sd_register:
 	kfree(vpbe_dev->encoders);
 vpbe_fail_v4l2_device:


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

* Re: [PATCH v2 7/8] drivers/media/platform/davinci/vpbe.c: Removes useless kfree()
  2012-09-12 12:55 [PATCH v2 7/8] drivers/media/platform/davinci/vpbe.c: Removes useless kfree() Peter Senna Tschudin
@ 2012-09-12 13:34 ` Marcos Souza
  2012-09-12 15:50   ` Peter Senna Tschudin
  0 siblings, 1 reply; 5+ messages in thread
From: Marcos Souza @ 2012-09-12 13:34 UTC (permalink / raw)
  To: Peter Senna Tschudin
  Cc: Mauro Carvalho Chehab, kernel-janitors, linux-media, linux-kernel

2012/9/12 Peter Senna Tschudin <peter.senna@gmail.com>:
> From: Peter Senna Tschudin <peter.senna@gmail.com>
>
> Remove useless kfree() and clean up code related to the removal.
>
> The semantic patch that finds this problem is as follows:
> (http://coccinelle.lip6.fr/)
>
> // <smpl>
> @r exists@
> position p1,p2;
> expression x;
> @@
>
> if (x@p1 = NULL) { ... kfree@p2(x); ... return ...; }
>
> @unchanged exists@
> position r.p1,r.p2;
> expression e <= r.x,x,e1;
> iterator I;
> statement S;
> @@
>
> if (x@p1 = NULL) { ... when != I(x,...) S
>                         when != e = e1
>                         when != e += e1
>                         when != e -= e1
>                         when != ++e
>                         when != --e
>                         when != e++
>                         when != e--
>                         when != &e
>    kfree@p2(x); ... return ...; }
>
> @ok depends on unchanged exists@
> position any r.p1;
> position r.p2;
> expression x;
> @@
>
> ... when != true x@p1 = NULL
> kfree@p2(x);
>
> @depends on !ok && unchanged@
> position r.p2;
> expression x;
> @@
>
> *kfree@p2(x);
> // </smpl>
>
> Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
>
> ---
>  drivers/media/platform/davinci/vpbe.c |    1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/drivers/media/platform/davinci/vpbe.c b/drivers/media/platform/davinci/vpbe.c
> index c4a82a1..1125a87 100644
> --- a/drivers/media/platform/davinci/vpbe.c
> +++ b/drivers/media/platform/davinci/vpbe.c
> @@ -771,7 +771,6 @@ static int vpbe_initialize(struct device *dev, struct vpbe_device *vpbe_dev)
>         return 0;
>
>  vpbe_fail_amp_register:
> -       kfree(vpbe_dev->amp);

Now that you removed this kfree, you could remove this label too. Very
nice your cleanup :)

>  vpbe_fail_sd_register:
>         kfree(vpbe_dev->encoders);
>  vpbe_fail_v4l2_device:
>
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Att,

Marcos Paulo de Souza
Acadêmico de Ciencia da Computação - FURB - SC
"Uma vida sem desafios é uma vida sem razão"
"A life without challenges, is a non reason life"
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH v2 7/8] drivers/media/platform/davinci/vpbe.c: Removes useless kfree()
  2012-09-12 13:34 ` Marcos Souza
@ 2012-09-12 15:50   ` Peter Senna Tschudin
  2012-09-12 16:10     ` Marcos Souza
  2012-09-12 17:25     ` Dan Carpenter
  0 siblings, 2 replies; 5+ messages in thread
From: Peter Senna Tschudin @ 2012-09-12 15:50 UTC (permalink / raw)
  To: Marcos Souza
  Cc: Mauro Carvalho Chehab, kernel-janitors, linux-media, linux-kernel

Marcos,

> Now that you removed this kfree, you could remove this label too. Very
> nice your cleanup :)
Thanks!

>
>>  vpbe_fail_sd_register:
>>         kfree(vpbe_dev->encoders);
>>  vpbe_fail_v4l2_device:

The problem removing the label is that it will require some more work
naming the labels. See:
if (!vpbe_dev->amp) {
...
	goto vpbe_fail_amp_register;

If I just remove the label vpbe_fail_amp_register, the label names
will not make sense any more as the next label is
vpbe_fail_sd_register. So I will need to change the name to something
different or rename all labels to out1, out2, out3 or err1, err2,
err3, or ....

Any suggestions?

-- 
Peter

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

* Re: [PATCH v2 7/8] drivers/media/platform/davinci/vpbe.c: Removes useless kfree()
  2012-09-12 15:50   ` Peter Senna Tschudin
@ 2012-09-12 16:10     ` Marcos Souza
  2012-09-12 17:25     ` Dan Carpenter
  1 sibling, 0 replies; 5+ messages in thread
From: Marcos Souza @ 2012-09-12 16:10 UTC (permalink / raw)
  To: Peter Senna Tschudin
  Cc: Mauro Carvalho Chehab, kernel-janitors, linux-media, linux-kernel

Hi Peter,

2012/9/12 Peter Senna Tschudin <peter.senna@gmail.com>:
> Marcos,
>
>> Now that you removed this kfree, you could remove this label too. Very
>> nice your cleanup :)
> Thanks!
>
>>
>>>  vpbe_fail_sd_register:
>>>         kfree(vpbe_dev->encoders);
>>>  vpbe_fail_v4l2_device:
>
> The problem removing the label is that it will require some more work
> naming the labels. See:
> if (!vpbe_dev->amp) {
> ...
>         goto vpbe_fail_amp_register;
>
> If I just remove the label vpbe_fail_amp_register, the label names
> will not make sense any more as the next label is
> vpbe_fail_sd_register. So I will need to change the name to something
> different or rename all labels to out1, out2, out3 or err1, err2,
> err3, or ....

I was looking at the code here, but this code is under
drivers/media/video/davince/vpbe.c....

Are  you using the Linus tree?

BTW, this label is only used once. AFAICS, you can GOTO to the next
label, vpbe_fail_sd_register in this case, who frees another member of
the vpbe_dev.

This make sense to you?

> Any suggestions?
>
> --
> Peter



-- 
Att,

Marcos Paulo de Souza
Acadêmico de Ciencia da Computação - FURB - SC
"Uma vida sem desafios é uma vida sem razão"
"A life without challenges, is a non reason life"
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH v2 7/8] drivers/media/platform/davinci/vpbe.c: Removes useless kfree()
  2012-09-12 15:50   ` Peter Senna Tschudin
  2012-09-12 16:10     ` Marcos Souza
@ 2012-09-12 17:25     ` Dan Carpenter
  1 sibling, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2012-09-12 17:25 UTC (permalink / raw)
  To: Peter Senna Tschudin
  Cc: Marcos Souza, Mauro Carvalho Chehab, kernel-janitors, linux-media,
	linux-kernel

On Wed, Sep 12, 2012 at 05:50:54PM +0200, Peter Senna Tschudin wrote:
> Marcos,
> 
> > Now that you removed this kfree, you could remove this label too. Very
> > nice your cleanup :)
> Thanks!
> 
> >
> >>  vpbe_fail_sd_register:
> >>         kfree(vpbe_dev->encoders);
> >>  vpbe_fail_v4l2_device:
> 
> The problem removing the label is that it will require some more work
> naming the labels. See:
> if (!vpbe_dev->amp) {
> ...
> 	goto vpbe_fail_amp_register;
> 
> If I just remove the label vpbe_fail_amp_register, the label names
> will not make sense any more as the next label is
> vpbe_fail_sd_register. So I will need to change the name to something
> different or rename all labels to out1, out2, out3 or err1, err2,
> err3, or ....
> 
> Any suggestions?

Labal names should not be numbers because this is not GW-BASIC.  The
label should reflect what happens on the next line.  Labeling the
place after the goto location where you started from is always
nonsense.

regards,
dan carpenter


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

end of thread, other threads:[~2012-09-12 17:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-12 12:55 [PATCH v2 7/8] drivers/media/platform/davinci/vpbe.c: Removes useless kfree() Peter Senna Tschudin
2012-09-12 13:34 ` Marcos Souza
2012-09-12 15:50   ` Peter Senna Tschudin
2012-09-12 16:10     ` Marcos Souza
2012-09-12 17:25     ` Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox