ALSA: aoa: onyx: always initialize register read value
authorJohannes Berg <johannes@sipsolutions.net>
Mon, 29 Jul 2019 07:14:22 +0000 (09:14 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 29 Jul 2019 07:21:39 +0000 (09:21 +0200)
A lot of places in the driver use onyx_read_register() without
checking the return value, and it's been working OK for ~10 years
or so, so probably never fails ... Rather than trying to check the
return value everywhere, which would be relatively intrusive, at
least make sure we don't use an uninitialized value.

Fixes: f3d9478b2ce4 ("[ALSA] snd-aoa: add snd-aoa")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/aoa/codecs/onyx.c

index db917546965d2bfb3498330920eb1c3060c59bb4..9827bee109c1a497a01fc19b8e3a2c16b324daed 100644 (file)
@@ -71,8 +71,10 @@ static int onyx_read_register(struct onyx *onyx, u8 reg, u8 *value)
                return 0;
        }
        v = i2c_smbus_read_byte_data(onyx->i2c, reg);
-       if (v < 0)
+       if (v < 0) {
+               *value = 0;
                return -1;
+       }
        *value = (u8)v;
        onyx->cache[ONYX_REG_CONTROL-FIRSTREGISTER] = *value;
        return 0;