From: Dan Carpenter Date: Fri, 11 Dec 2020 10:07:59 +0000 (+0300) Subject: ASoC: cs42l56: fix up error handling in probe X-Git-Tag: accepted/tizen/unified/20230118.172025~7091^2~1^2~197^2~105 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=856fe64da84c95a1d415564b981ae3908eea2a76;p=platform%2Fkernel%2Flinux-rpi.git ASoC: cs42l56: fix up error handling in probe There are two issues with this code. The first error path forgot to set the error code and instead returns success. The second error path doesn't clean up. Fixes: 272b5edd3b8f ("ASoC: Add support for CS42L56 CODEC") Signed-off-by: Dan Carpenter Link: https://lore.kernel.org/r/X9NE/9nK9/TuxuL+@mwanda Signed-off-by: Mark Brown --- diff --git a/sound/soc/codecs/cs42l56.c b/sound/soc/codecs/cs42l56.c index bb9599c..c44a5cd 100644 --- a/sound/soc/codecs/cs42l56.c +++ b/sound/soc/codecs/cs42l56.c @@ -1250,6 +1250,7 @@ static int cs42l56_i2c_probe(struct i2c_client *i2c_client, dev_err(&i2c_client->dev, "CS42L56 Device ID (%X). Expected %X\n", devid, CS42L56_DEVID); + ret = -EINVAL; goto err_enable; } alpha_rev = reg & CS42L56_AREV_MASK; @@ -1307,7 +1308,7 @@ static int cs42l56_i2c_probe(struct i2c_client *i2c_client, ret = devm_snd_soc_register_component(&i2c_client->dev, &soc_component_dev_cs42l56, &cs42l56_dai, 1); if (ret < 0) - return ret; + goto err_enable; return 0;