Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ALSA: hda: tas2781-spi: Fix -Wsometimes-uninitialized in tasdevice_spi_switch_book()

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>
Link: https://patch.msgid.link/20250120-tas2781_hda_spi-fix-wsometimes-uninitialized-v1-1-d7fd104aa63e@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Nathan Chancellor and committed by
Takashi Iwai
1256961d e576e784

+3 -4
+3 -4
sound/pci/hda/tas2781_hda_spi.c
··· 105 105 static int tasdevice_spi_switch_book(struct tasdevice_priv *tas_priv, int reg) 106 106 { 107 107 struct regmap *map = tas_priv->regmap; 108 - int ret; 109 108 110 109 if (tas_priv->cur_book != TASDEVICE_BOOK_ID(reg)) { 111 - ret = regmap_write(map, TASDEVICE_BOOKCTL_REG, 112 - TASDEVICE_BOOK_ID(reg)); 110 + int ret = regmap_write(map, TASDEVICE_BOOKCTL_REG, 111 + TASDEVICE_BOOK_ID(reg)); 113 112 if (ret < 0) { 114 113 dev_err(tas_priv->dev, "Switch Book E=%d\n", ret); 115 114 return ret; 116 115 } 117 116 tas_priv->cur_book = TASDEVICE_BOOK_ID(reg); 118 117 } 119 - return ret; 118 + return 0; 120 119 } 121 120 122 121 int tasdevice_spi_dev_read(struct tasdevice_priv *tas_priv,