Message ID | 20250120-tas2781_hda_spi-fix-wsometimes-uninitialized-v1-1-d7fd104aa63e@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | ALSA: hda: tas2781-spi: Fix -Wsometimes-uninitialized in tasdevice_spi_switch_book() | expand |
On Mon, 20 Jan 2025 14:32:48 +0100, Nathan Chancellor wrote: > > Clang warns (or errors with CONFIG_WERROR=y): > > sound/pci/hda/tas2781_hda_spi.c:110:6: error: variable 'ret' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] > 110 | if (tas_priv->cur_book != TASDEVICE_BOOK_ID(reg)) { > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > sound/pci/hda/tas2781_hda_spi.c:119:9: note: uninitialized use occurs here > 119 | return ret; > | ^~~ > sound/pci/hda/tas2781_hda_spi.c:110:2: note: remove the 'if' if its condition is always true > 110 | if (tas_priv->cur_book != TASDEVICE_BOOK_ID(reg)) { > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > sound/pci/hda/tas2781_hda_spi.c:108:9: note: initialize the variable 'ret' to silence this warning > 108 | int ret; > | ^ > | = 0 > > Sink the declaration of ret into the if block and just return 0 at the > end of the function, as there is nothing to do if cur_book has already > been changed. > > Fixes: bb5f86ea50ff ("ALSA: hda/tas2781: Add tas2781 hda SPI driver") > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202501192006.Hm9GmKiV-lkp@intel.com/ > Signed-off-by: Nathan Chancellor <nathan@kernel.org> Thanks, applied now. Takashi
diff --git a/sound/pci/hda/tas2781_hda_spi.c b/sound/pci/hda/tas2781_hda_spi.c index 8068c70b7014..5be71b538ce0 100644 --- a/sound/pci/hda/tas2781_hda_spi.c +++ b/sound/pci/hda/tas2781_hda_spi.c @@ -105,18 +105,17 @@ static const struct regmap_config tasdevice_regmap = { static int tasdevice_spi_switch_book(struct tasdevice_priv *tas_priv, int reg) { struct regmap *map = tas_priv->regmap; - int ret; if (tas_priv->cur_book != TASDEVICE_BOOK_ID(reg)) { - ret = regmap_write(map, TASDEVICE_BOOKCTL_REG, - TASDEVICE_BOOK_ID(reg)); + int ret = regmap_write(map, TASDEVICE_BOOKCTL_REG, + TASDEVICE_BOOK_ID(reg)); if (ret < 0) { dev_err(tas_priv->dev, "Switch Book E=%d\n", ret); return ret; } tas_priv->cur_book = TASDEVICE_BOOK_ID(reg); } - return ret; + return 0; } int tasdevice_spi_dev_read(struct tasdevice_priv *tas_priv,
Clang warns (or errors with CONFIG_WERROR=y): sound/pci/hda/tas2781_hda_spi.c:110:6: error: variable 'ret' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] 110 | if (tas_priv->cur_book != TASDEVICE_BOOK_ID(reg)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/pci/hda/tas2781_hda_spi.c:119:9: note: uninitialized use occurs here 119 | return ret; | ^~~ sound/pci/hda/tas2781_hda_spi.c:110:2: note: remove the 'if' if its condition is always true 110 | if (tas_priv->cur_book != TASDEVICE_BOOK_ID(reg)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/pci/hda/tas2781_hda_spi.c:108:9: note: initialize the variable 'ret' to silence this warning 108 | int ret; | ^ | = 0 Sink the declaration of ret into the if block and just return 0 at the end of the function, as there is nothing to do if cur_book has already been changed. Fixes: bb5f86ea50ff ("ALSA: hda/tas2781: Add tas2781 hda SPI driver") Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202501192006.Hm9GmKiV-lkp@intel.com/ Signed-off-by: Nathan Chancellor <nathan@kernel.org> --- sound/pci/hda/tas2781_hda_spi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) --- base-commit: e576e7843c0d65b82d4092e5b386d9fbf5bc10c3 change-id: 20250120-tas2781_hda_spi-fix-wsometimes-uninitialized-4aac99e287dd Best regards,