ALSA: sound/soc/at32: Useless NULL test
Julien Brunel [Fri, 26 Sep 2008 13:23:46 +0000 (15:23 +0200)]
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>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>

sound/soc/at32/playpaq_wm8510.c

index 7e6560b..98a2d58 100644 (file)
@@ -406,7 +406,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;
@@ -477,10 +476,7 @@ err_pll0:
                _gclk0 = NULL;
        }
 err_gclk0:
-       if (ssc != NULL) {
-               ssc_free(ssc);
-               ssc = NULL;
-       }
+       ssc_free(ssc);
 err_ssc:
        return ret;
 }