summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2024-11-13 18:57:13 +0100
committerMark Brown <broonie@kernel.org>2024-11-14 12:42:41 +0100
commitc48a4497356f701f94f1951626637ae240af909e (patch)
treef2d58d147ccda7e8c4f347d4c0d8374d37cad92a /sound/soc/codecs
parentASoC: Merge up fixes (diff)
downloadlinux-c48a4497356f701f94f1951626637ae240af909e.tar.xz
linux-c48a4497356f701f94f1951626637ae240af909e.zip
ASoC: sma1307: fix uninitialized variable refence
When firmware loading is disabled, gcc warns that the local 'fw' variable fails to get initialized: sound/soc/codecs/sma1307.c: In function 'sma1307_setting_loaded.isra': sound/soc/codecs/sma1307.c:1717:12: error: 'fw' is used uninitialized [-Werror=uninitialized] 1717 | if (!fw) { | ^ sound/soc/codecs/sma1307.c:1712:32: note: 'fw' was declared here 1712 | const struct firmware *fw; Check the return code from request_firmware() to ensure that the firmware is correctly set, and drop the incorrect release_firmware() on that uninitialized data. Fixes: 576c57e6b4c1 ("ASoC: sma1307: Add driver for Iron Device SMA1307") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Link: https://patch.msgid.link/20241113175734.2443315-1-arnd@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs')
-rw-r--r--sound/soc/codecs/sma1307.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sound/soc/codecs/sma1307.c b/sound/soc/codecs/sma1307.c
index 81638768ac12..f2cea6186d98 100644
--- a/sound/soc/codecs/sma1307.c
+++ b/sound/soc/codecs/sma1307.c
@@ -1711,13 +1711,13 @@ static void sma1307_setting_loaded(struct sma1307_priv *sma1307, const char *fil
{
const struct firmware *fw;
int *data, size, offset, num_mode;
+ int ret;
- request_firmware(&fw, file, sma1307->dev);
+ ret = request_firmware(&fw, file, sma1307->dev);
- if (!fw) {
- dev_err(sma1307->dev, "%s: failed to read \"%s\"\n",
- __func__, setting_file);
- release_firmware(fw);
+ if (ret) {
+ dev_err(sma1307->dev, "%s: failed to read \"%s\": %pe\n",
+ __func__, setting_file, ERR_PTR(ret));
sma1307->set.status = false;
return;
} else if ((fw->size) < SMA1307_SETTING_HEADER_SIZE) {