brcm2708: update 3.10 patches with raspberrypi/rpi-3.10.y of 27 Apr. 2014
[openwrt/svn-archive/archive.git] / target / linux / brcm2708 / patches-3.10 / 0195-snd-bcm2835-Ensure-alsa_stream-is-null-on-failure-to.patch
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 (file)
index 0000000..ab4a555
--- /dev/null
@@ -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
+