All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][next] ASoC: rt-sdw-common: Fix bit-wise or'ing of values into uninitialized variable ret
@ 2024-10-08 16:47 Colin Ian King
  2024-10-08 17:04 ` Mark Brown
  0 siblings, 1 reply; 4+ messages in thread
From: Colin Ian King @ 2024-10-08 16:47 UTC (permalink / raw)
  To: Oder Chiou, Liam Girdwood, Mark Brown, Jaroslav Kysela,
	Takashi Iwai, Jack Yu, linux-sound
  Cc: kernel-janitors, linux-kernel

There are a handful of bit-wise or'ing of values into the uninitialized
variable ret resulting in garbage results. Fix this by ininitializing
ret to zero.

Fixes: bbca8e7050e0 ("ASoC: rt-sdw-common: Common functions for Realtek soundwire driver")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
 sound/soc/codecs/rt-sdw-common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/codecs/rt-sdw-common.c b/sound/soc/codecs/rt-sdw-common.c
index 9ed0e9855699..a422da6cf702 100644
--- a/sound/soc/codecs/rt-sdw-common.c
+++ b/sound/soc/codecs/rt-sdw-common.c
@@ -101,21 +101,21 @@ EXPORT_SYMBOL_GPL(rt_sdca_index_update_bits);
  * rt_sdca_btn_type - Decision of button type.
  *
  * @buffer: UMP message buffer.
  *
  * A button type will be returned regarding to buffer,
  * it returns zero if buffer cannot be recognized.
  */
 int rt_sdca_btn_type(unsigned char *buffer)
 {
 	u8 btn_type = 0;
-	int ret;
+	int ret = 0;
 
 	btn_type |= buffer[0] & 0xf;
 	btn_type |= (buffer[0] >> 4) & 0xf;
 	btn_type |= buffer[1] & 0xf;
 	btn_type |= (buffer[1] >> 4) & 0xf;
 
 	if (btn_type & BIT(0))
 		ret |= SND_JACK_BTN_2;
 	if (btn_type & BIT(1))
 		ret |= SND_JACK_BTN_3;
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH][next] ASoC: rt-sdw-common: Fix bit-wise or'ing of values into uninitialized variable ret
  2024-10-08 16:47 [PATCH][next] ASoC: rt-sdw-common: Fix bit-wise or'ing of values into uninitialized variable ret Colin Ian King
@ 2024-10-08 17:04 ` Mark Brown
  2024-10-08 18:28   ` Dan Carpenter
  2024-10-09  2:16   ` Jack Yu
  0 siblings, 2 replies; 4+ messages in thread
From: Mark Brown @ 2024-10-08 17:04 UTC (permalink / raw)
  To: Colin Ian King
  Cc: Oder Chiou, Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Jack Yu,
	linux-sound, kernel-janitors, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 288 bytes --]

On Tue, Oct 08, 2024 at 05:47:07PM +0100, Colin Ian King wrote:
> There are a handful of bit-wise or'ing of values into the uninitialized
> variable ret resulting in garbage results. Fix this by ininitializing
> ret to zero.

I'm very disappinted in the compiler for not noticing this :(

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH][next] ASoC: rt-sdw-common: Fix bit-wise or'ing of values into uninitialized variable ret
  2024-10-08 17:04 ` Mark Brown
@ 2024-10-08 18:28   ` Dan Carpenter
  2024-10-09  2:16   ` Jack Yu
  1 sibling, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2024-10-08 18:28 UTC (permalink / raw)
  To: Mark Brown
  Cc: Colin Ian King, Oder Chiou, Liam Girdwood, Jaroslav Kysela,
	Takashi Iwai, Jack Yu, linux-sound, kernel-janitors, linux-kernel

On Tue, Oct 08, 2024 at 06:04:08PM +0100, Mark Brown wrote:
> On Tue, Oct 08, 2024 at 05:47:07PM +0100, Colin Ian King wrote:
> > There are a handful of bit-wise or'ing of values into the uninitialized
> > variable ret resulting in garbage results. Fix this by ininitializing
> > ret to zero.
> 
> I'm very disappinted in the compiler for not noticing this :(

We disabled GCC's uninitialized variable check years ago before we enabled
-Werror.  Clang does catch this.

  CC      sound/soc/codecs/rt-sdw-common.o
sound/soc/codecs/rt-sdw-common.c:119:3: warning: variable 'ret' is uninitialized when used here [-Wuninitialized]
                ret |= SND_JACK_BTN_2;
                ^~~
sound/soc/codecs/rt-sdw-common.c:111:9: note: initialize the variable 'ret' to silence this warning
        int ret;
               ^
                = 0

regards,
dan carpenter


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH][next] ASoC: rt-sdw-common: Fix bit-wise or'ing of values into uninitialized variable ret
  2024-10-08 17:04 ` Mark Brown
  2024-10-08 18:28   ` Dan Carpenter
@ 2024-10-09  2:16   ` Jack Yu
  1 sibling, 0 replies; 4+ messages in thread
From: Jack Yu @ 2024-10-09  2:16 UTC (permalink / raw)
  To: Mark Brown, Colin Ian King
  Cc: Oder Chiou, Liam Girdwood, Jaroslav Kysela, Takashi Iwai,
	linux-sound@vger.kernel.org, kernel-janitors@vger.kernel.org,
	linux-kernel@vger.kernel.org

[-- Attachment #1: Type: text/plain, Size: 969 bytes --]



> -----Original Message-----
> From: Mark Brown <broonie@kernel.org>
> Sent: Wednesday, October 9, 2024 1:04 AM
> To: Colin Ian King <colin.i.king@gmail.com>
> Cc: Oder Chiou <oder_chiou@realtek.com>; Liam Girdwood
> <lgirdwood@gmail.com>; Jaroslav Kysela <perex@perex.cz>; Takashi Iwai
> <tiwai@suse.com>; Jack Yu <jack.yu@realtek.com>;
> linux-sound@vger.kernel.org; kernel-janitors@vger.kernel.org;
> linux-kernel@vger.kernel.org
> Subject: Re: [PATCH][next] ASoC: rt-sdw-common: Fix bit-wise or'ing of values
> into uninitialized variable ret
> 
> On Tue, Oct 08, 2024 at 05:47:07PM +0100, Colin Ian King wrote:
> > There are a handful of bit-wise or'ing of values into the
> > uninitialized variable ret resulting in garbage results. Fix this by
> > ininitializing ret to zero.
> 
> I'm very disappinted in the compiler for not noticing this :(

I'm sorry for such mistake. I've sent a patch to fix this yesterday, please refer attachment.

[-- Attachment #2: Type: message/rfc822, Size: 2989 bytes --]

From: Jack Yu <jack.yu@realtek.com>
To: "broonie@kernel.org" <broonie@kernel.org>, "lgirdwood@gmail.com" <lgirdwood@gmail.com>
Cc: "alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>, "lars@metafoo.de" <lars@metafoo.de>, "bard.liao@intel.com" <bard.liao@intel.com>, "naveen.m@intel.com" <naveen.m@intel.com>, "Flove(HsinFu)" <flove@realtek.com>, "Oder Chiou" <oder_chiou@realtek.com>, "Shuming [范書銘]" <shumingf@realtek.com>, "Derek [方德義]" <derek.fang@realtek.com>, "Jack Yu" <jack.yu@realtek.com>
Subject: [PATCH 2/2] ASoC: rt721-sdca: Fix issue of warning message
Date: Tue, 8 Oct 2024 08:57:35 +0000

Fix issue of warning messages caused by some variables.

Signed-off-by: Jack Yu <jack.yu@realtek.com>
---
 sound/soc/codecs/rt-sdw-common.c | 2 +-
 sound/soc/codecs/rt721-sdca.c    | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sound/soc/codecs/rt-sdw-common.c b/sound/soc/codecs/rt-sdw-common.c
index 9ed0e9855699..a422da6cf702 100644
--- a/sound/soc/codecs/rt-sdw-common.c
+++ b/sound/soc/codecs/rt-sdw-common.c
@@ -108,7 +108,7 @@ EXPORT_SYMBOL_GPL(rt_sdca_index_update_bits);
 int rt_sdca_btn_type(unsigned char *buffer)
 {
 	u8 btn_type = 0;
-	int ret;
+	int ret = 0;
 
 	btn_type |= buffer[0] & 0xf;
 	btn_type |= (buffer[0] >> 4) & 0xf;
diff --git a/sound/soc/codecs/rt721-sdca.c b/sound/soc/codecs/rt721-sdca.c
index 36056cb7a3ca..201cb667c8c1 100644
--- a/sound/soc/codecs/rt721-sdca.c
+++ b/sound/soc/codecs/rt721-sdca.c
@@ -30,7 +30,7 @@ static void rt721_sdca_jack_detect_handler(struct work_struct *work)
 {
 	struct rt721_sdca_priv *rt721 =
 		container_of(work, struct rt721_sdca_priv, jack_detect_work.work);
-	int btn_type = 0, ret;
+	int btn_type = 0;
 
 	if (!rt721->hs_jack)
 		return;
@@ -42,7 +42,7 @@ static void rt721_sdca_jack_detect_handler(struct work_struct *work)
 	if (rt721->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_6) {
 		rt721->jack_type = rt_sdca_headset_detect(rt721->regmap,
 							RT721_SDCA_ENT_GE49);
-		if (ret < 0)
+		if (rt721->jack_type < 0)
 			return;
 	}
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-10-09  2:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-08 16:47 [PATCH][next] ASoC: rt-sdw-common: Fix bit-wise or'ing of values into uninitialized variable ret Colin Ian King
2024-10-08 17:04 ` Mark Brown
2024-10-08 18:28   ` Dan Carpenter
2024-10-09  2:16   ` Jack Yu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.