diff options
Diffstat (limited to 'target/linux/brcm2708/patches-3.10/0195-snd-bcm2835-Ensure-alsa_stream-is-null-on-failure-to.patch')
-rw-r--r-- | target/linux/brcm2708/patches-3.10/0195-snd-bcm2835-Ensure-alsa_stream-is-null-on-failure-to.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-3.10/0195-snd-bcm2835-Ensure-alsa_stream-is-null-on-failure-to.patch b/target/linux/brcm2708/patches-3.10/0195-snd-bcm2835-Ensure-alsa_stream-is-null-on-failure-to.patch new file mode 100644 index 0000000000..ab4a555950 --- /dev/null +++ b/target/linux/brcm2708/patches-3.10/0195-snd-bcm2835-Ensure-alsa_stream-is-null-on-failure-to.patch @@ -0,0 +1,41 @@ +From 08223128145b351a4d47b6d1780c13eac5d8df95 Mon Sep 17 00:00:00 2001 +From: popcornmix <popcornmix@gmail.com> +Date: Sun, 27 Apr 2014 17:52:12 +0100 +Subject: [PATCH 195/196] snd-bcm2835: Ensure alsa_stream is null on failure to + avoid kernel panic + +--- + sound/arm/bcm2835-pcm.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/sound/arm/bcm2835-pcm.c b/sound/arm/bcm2835-pcm.c +index 499e225..54a8f87 100755 +--- a/sound/arm/bcm2835-pcm.c ++++ b/sound/arm/bcm2835-pcm.c +@@ -136,6 +136,11 @@ static int snd_bcm2835_playback_open(struct snd_pcm_substream *substream) + alsa_stream->enable_fifo_irq = 0; + alsa_stream->fifo_irq_handler = bcm2835_playback_fifo_irq; + ++ err = bcm2835_audio_open(alsa_stream); ++ if (err != 0) { ++ kfree(alsa_stream); ++ return err; ++ } + runtime->private_data = alsa_stream; + runtime->private_free = snd_bcm2835_playback_free; + runtime->hw = snd_bcm2835_playback_hw; +@@ -143,11 +148,6 @@ static int snd_bcm2835_playback_open(struct snd_pcm_substream *substream) + snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, + 16); + +- err = bcm2835_audio_open(alsa_stream); +- if (err != 0) { +- kfree(alsa_stream); +- return err; +- } + chip->alsa_stream[idx] = alsa_stream; + + alsa_stream->open = 1; +-- +1.9.1 + |