From f7af161699cbbca544dd8feab4c05d9bc5ea8807 Mon Sep 17 00:00:00 2001 From: Janis Danisevskis Date: Wed, 1 Jan 2014 18:41:53 +0100 Subject: [PATCH 146/174] fixes a bug in the snd-bcm2835 driver The "instance" field of bcm2835_alsa_stream_t may be accessed uninitialized by bcm2835_audio_set_ctls_chan if called during stream creation. This fix deferres the addition to of the stream to chip untill it has been fully initialized. --- sound/arm/bcm2835-pcm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/sound/arm/bcm2835-pcm.c +++ b/sound/arm/bcm2835-pcm.c @@ -127,7 +127,6 @@ static int snd_bcm2835_playback_open(str alsa_stream->chip = chip; alsa_stream->substream = substream; alsa_stream->idx = idx; - chip->alsa_stream[idx] = alsa_stream; sema_init(&alsa_stream->buffers_update_sem, 0); sema_init(&alsa_stream->control_sem, 0); @@ -149,6 +148,7 @@ static int snd_bcm2835_playback_open(str kfree(alsa_stream); return err; } + chip->alsa_stream[idx] = alsa_stream; alsa_stream->open = 1; alsa_stream->draining = 1;