ALSA: pci: lx6464es: fix a debug loop
authorDan Carpenter <error27@gmail.com>
Tue, 31 Jan 2023 10:02:13 +0000 (13:02 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Feb 2023 18:11:49 +0000 (19:11 +0100)
[ Upstream commit 5dac9f8dc25fefd9d928b98f6477ff3daefd73e3 ]

This loop accidentally reuses the "i" iterator for both the inside and
the outside loop.  The value of MAX_STREAM_BUFFER is 5.  I believe that
chip->rmh.stat_len is in the 2-12 range.  If the value of .stat_len is
4 or more then it will loop exactly one time, but if it's less then it
is a forever loop.

It looks like it was supposed to combined into one loop where
conditions are checked.

Fixes: 8e6320064c33 ("ALSA: lx_core: Remove useless #if 0 .. #endif")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Link: https://lore.kernel.org/r/Y9jnJTis/mRFJAQp@kili
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/pci/lx6464es/lx_core.c

index d3f58a3..b5b0d43 100644 (file)
@@ -493,12 +493,11 @@ int lx_buffer_ask(struct lx6464es *chip, u32 pipe, int is_capture,
                dev_dbg(chip->card->dev,
                        "CMD_08_ASK_BUFFERS: needed %d, freed %d\n",
                            *r_needed, *r_freed);
-               for (i = 0; i < MAX_STREAM_BUFFER; ++i) {
-                       for (i = 0; i != chip->rmh.stat_len; ++i)
-                               dev_dbg(chip->card->dev,
-                                       "  stat[%d]: %x, %x\n", i,
-                                           chip->rmh.stat[i],
-                                           chip->rmh.stat[i] & MASK_DATA_SIZE);
+               for (i = 0; i < MAX_STREAM_BUFFER && i < chip->rmh.stat_len;
+                    ++i) {
+                       dev_dbg(chip->card->dev, "  stat[%d]: %x, %x\n", i,
+                               chip->rmh.stat[i],
+                               chip->rmh.stat[i] & MASK_DATA_SIZE);
                }
        }