ASoC: Move dereference after NULL test
Julia Lawall [Sat, 17 Oct 2009 06:32:56 +0000 (08:32 +0200)]
If the NULL test on jack is needed, then the derefernce should be after the
NULL test.

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

// <smpl>
@match exists@
expression x, E;
identifier fld;
@@

* x->fld
  ... when != \(x = E\|&x\)
* x == NULL
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

sound/soc/soc-jack.c

index 1d455ab..1212414 100644 (file)
@@ -58,7 +58,7 @@ EXPORT_SYMBOL_GPL(snd_soc_jack_new);
  */
 void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)
 {
-       struct snd_soc_codec *codec = jack->card->codec;
+       struct snd_soc_codec *codec;
        struct snd_soc_jack_pin *pin;
        int enable;
        int oldstatus;
@@ -67,6 +67,7 @@ void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)
                WARN_ON_ONCE(!jack);
                return;
        }
+       codec = jack->card->codec;
 
        mutex_lock(&codec->mutex);