summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/rt5651.c
diff options
context:
space:
mode:
authorYizhuo <yzhai003@ucr.edu>2019-01-25 10:45:37 -0800
committerMark Brown <broonie@kernel.org>2019-01-28 12:34:39 +0000
commite20bfeb0b7d808bc05e7c4cb1f492cd31d837da0 (patch)
treedd510bc10a9dbf66038a01b537be197418e56b7a /sound/soc/codecs/rt5651.c
parent5e484ec1758b95e6420787fc17f0e8c5e152c264 (diff)
downloadlinux-e20bfeb0b7d808bc05e7c4cb1f492cd31d837da0.tar.bz2
ASoC: rt5651: Variable "ret" in function rt5651_i2c_probe() could be uninitialized
In function rt5651_i2c_probe(), local variable "ret" could be uninitialized if function regmap_read() returns -EINVAL. However, this value is used in if statement. This is potentially unsafe. Signed-off-by: Yizhuo <yzhai003@ucr.edu> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/rt5651.c')
-rw-r--r--sound/soc/codecs/rt5651.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c
index 75994297c896..29b2d60076b0 100644
--- a/sound/soc/codecs/rt5651.c
+++ b/sound/soc/codecs/rt5651.c
@@ -2181,6 +2181,7 @@ static int rt5651_i2c_probe(struct i2c_client *i2c,
{
struct rt5651_priv *rt5651;
int ret;
+ int err;
rt5651 = devm_kzalloc(&i2c->dev, sizeof(*rt5651),
GFP_KERNEL);
@@ -2197,7 +2198,10 @@ static int rt5651_i2c_probe(struct i2c_client *i2c,
return ret;
}
- regmap_read(rt5651->regmap, RT5651_DEVICE_ID, &ret);
+ err = regmap_read(rt5651->regmap, RT5651_DEVICE_ID, &ret);
+ if (err)
+ return err;
+
if (ret != RT5651_DEVICE_ID_VALUE) {
dev_err(&i2c->dev,
"Device with ID register %#x is not rt5651\n", ret);