]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
ALSA: aoa: onyx: always initialize register read value
authorJohannes Berg <johannes@sipsolutions.net>
Mon, 29 Jul 2019 07:14:22 +0000 (09:14 +0200)
committerKhalid Elmously <khalid.elmously@canonical.com>
Fri, 14 Feb 2020 05:29:37 +0000 (00:29 -0500)
BugLink: https://bugs.launchpad.net/bugs/1863019
[ Upstream commit f474808acb3c4b30552d9c59b181244e0300d218 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
sound/aoa/codecs/onyx.c

index d2d96ca082b71a204f3f18e7fa207e929564e4da..6224fd3bbf7ccf516ae4c417c806f56904c37169 100644 (file)
@@ -74,8 +74,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;