| From babe6a25f75a10f6e2c72600014dcdd9a4fd630d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 29 Jul 2019 09:14:22 +0200 |
| Subject: ALSA: aoa: onyx: always initialize register read value |
| |
| From: Johannes Berg <johannes@sipsolutions.net> |
| |
| [ 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> |
| --- |
| sound/aoa/codecs/onyx.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c |
| index a04edff8b729e..ae50d59fb810f 100644 |
| --- a/sound/aoa/codecs/onyx.c |
| +++ b/sound/aoa/codecs/onyx.c |
| @@ -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; |
| -- |
| 2.20.1 |
| |