From: Devin Heitmueller Date: Thu, 15 Oct 2009 04:14:34 +0000 (-0300) Subject: V4L/DVB (13190): em28xx: fix panic that can occur when starting audio streaming X-Git-Tag: MMI-PSA29.97-13-9~25942^2~14 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=96fbf771d86a90ff006bc62ca4d4de6474b3de31;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git V4L/DVB (13190): em28xx: fix panic that can occur when starting audio streaming Because the counters were not reset when starting up streaming, they would be reused from the previous run. This can result in cases such that when the second instance of streaming starts up, the "cnt" variable in em28xx_audio_isocirq() can end up being negative, resulting in attempting to write to memory before the start of runtime->dma_area (as well as having a negative number of bytes to copy). Signed-off-by: Devin Heitmueller CC: stable@kernel.org Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/em28xx/em28xx-audio.c b/drivers/media/video/em28xx/em28xx-audio.c index 7bd8a70f0a0b..ac947aecb9c3 100644 --- a/drivers/media/video/em28xx/em28xx-audio.c +++ b/drivers/media/video/em28xx/em28xx-audio.c @@ -383,6 +383,11 @@ static int snd_em28xx_hw_capture_free(struct snd_pcm_substream *substream) static int snd_em28xx_prepare(struct snd_pcm_substream *substream) { + struct em28xx *dev = snd_pcm_substream_chip(substream); + + dev->adev.hwptr_done_capture = 0; + dev->adev.capture_transfer_done = 0; + return 0; }