Re: [PATCH] sound/soc/at32: Useless NULL test

Previous thread: Inflation of vmlinux by linker on x86_64 by Joris van Rantwijk on Friday, September 26, 2008 - 5:42 am. (6 messages)

Next thread: [PATCH] drivers/mtd/ubi: Bad IS_ERR test by Julien Brunel on Friday, September 26, 2008 - 6:27 am. (2 messages)
From: Julien Brunel
Date: Friday, September 26, 2008 - 6:23 am

The test (ssc != NULL) can only be reached if the call to the function
ssc_request, the result of which ssc is assigned, succeeds. Moreover,
two statements assign NULL to ssc just before a return, which is useless
since it is a local variable. So, we suggest to delete the test and
the two assignments.

A simplified version of the semantic match that finds this problem is
as follows: 
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@bad_null_test@
expression x,E;
@@
x = ssc_request(...)
... when != x = E
* x != NULL
// </smpl>

Signed-off-by:  Julien Brunel <brunel@diku.dk>
Signed-off-by:  Julia Lawall <julia@diku.dk>

---
 sound/soc/at32/playpaq_wm8510.c |    6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff -u -p a/sound/soc/at32/playpaq_wm8510.c b/sound/soc/at32/playpaq_wm8510.c
--- a/sound/soc/at32/playpaq_wm8510.c
+++ b/sound/soc/at32/playpaq_wm8510.c
@@ -405,7 +405,6 @@ static int __init playpaq_asoc_init(void
 	ssc = ssc_request(0);
 	if (IS_ERR(ssc)) {
 		ret = PTR_ERR(ssc);
-		ssc = NULL;
 		goto err_ssc;
 	}
 	ssc_p->ssc = ssc;
@@ -476,10 +475,7 @@ err_pll0:
 		_gclk0 = NULL;
 	}
 err_gclk0:
-	if (ssc != NULL) {
-		ssc_free(ssc);
-		ssc = NULL;
-	}
+	ssc_free(ssc);
 err_ssc:
 	return ret;
 }
--

From: Mark Brown
Date: Friday, September 26, 2008 - 7:00 am

Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

For future reference if you're submitting other similar things (which I
guess you will given that you've got a tool to check for this stuff)
it'd be helpful if you could rewrite the explanation for the NULL test
to be something like:

    The test (ssc != NULL) is redundant since it can only be reached
    when ssc is guaranteed to have been set to a valid ssc.

--

From: Takashi Iwai
Date: Friday, September 26, 2008 - 7:45 am

At Fri, 26 Sep 2008 15:00:23 +0100,


Agreed :)


Takashi
--

Previous thread: Inflation of vmlinux by linker on x86_64 by Joris van Rantwijk on Friday, September 26, 2008 - 5:42 am. (6 messages)

Next thread: [PATCH] drivers/mtd/ubi: Bad IS_ERR test by Julien Brunel on Friday, September 26, 2008 - 6:27 am. (2 messages)