greybus: audio-pcm: fix use of variable unitialized
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Thu, 29 Oct 2015 16:58:29 +0000 (16:58 +0000)
committerGreg Kroah-Hartman <gregkh@google.com>
Mon, 2 Nov 2015 19:25:07 +0000 (11:25 -0800)
Compiling with clang shows that period_elapsed will be used as a branch
conditional unitialized whenever snd_dev->transfer_done <
runtime->period_size. Since stack can grow up/down as we proceed though
the call stack this should be fixed. This patch fixes by explicitly
initalizing period_elapsed to zero.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/audio-pcm.c

index fa5e85dfc83be9b5f4b1bb9e88fe48853133a57f..e62152a7be9e7f22b21d1b81f5e3a6040bafb18d 100644 (file)
@@ -91,6 +91,7 @@ static void gb_pcm_work(struct work_struct *work)
 
        frames = (len + (oldptr % stride)) / stride;
 
+       period_elapsed = 0;
        snd_dev->transfer_done += frames;
        if (snd_dev->transfer_done >= runtime->period_size) {
                snd_dev->transfer_done -= runtime->period_size;