[alsa-devel] ASoC: uninitialized variable i used in wait_for_dc_servo

Axel Lin axel.lin at gmail.com
Thu Sep 15 04:52:34 CEST 2011


hi Mark,
I guess we need to initialize i to timeout value. comments?

diff --git a/sound/soc/codecs/wm8996.c b/sound/soc/codecs/wm8996.c
index e5e4607..5aee9cb 100644
--- a/sound/soc/codecs/wm8996.c
+++ b/sound/soc/codecs/wm8996.c
@@ -713,6 +713,7 @@ static void wait_for_dc_servo(struct snd_soc_codec *codec, u16 mask)
 	snd_soc_write(codec, WM8996_DC_SERVO_2, mask);
 
 	/* Use the interrupt if possible */
+	i = timeout;
 	do {
 		if (i2c->irq) {
 			timeout = wait_for_completion_timeout(&wm8996->dcs_done,
@@ -722,7 +723,7 @@ static void wait_for_dc_servo(struct snd_soc_codec *codec, u16 mask)
 
 		} else {
 			msleep(1);
-			if (--i) {
+			if (--i == 0) {
 				timeout = 0;
 				break;
 			}





More information about the Alsa-devel mailing list