summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/em28xx/em28xx-audio.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2008-06-14 06:41:18 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-06-14 06:41:18 -0300
commit2b3a17e6dc2b2244b9a7701b5ae8c9767a6b241b (patch)
tree2d43910dddc74085d7ead67a9fffee8c07403d72 /linux/drivers/media/video/em28xx/em28xx-audio.c
parent5d49071dc5848b7556ed9f536a7e671dedc8884e (diff)
downloadmediapointer-dvb-s2-2b3a17e6dc2b2244b9a7701b5ae8c9767a6b241b.tar.gz
mediapointer-dvb-s2-2b3a17e6dc2b2244b9a7701b5ae8c9767a6b241b.tar.bz2
Avoids an OOPS if dev struct can't be successfully recovered
From: Mauro Carvalho Chehab <mchehab@infradead.org> On some alsa versions, it seems that snd_pcm_substream_chip(substream) is returning a NULL pointer. This causes an OOPS, as reported by: https://bugs.launchpad.net/ubuntu/+source/linux-ubuntu-modules-2.6.24/+bug/212271 https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/212960 This patch avoids the OOPS by not letting and open() succeed. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/video/em28xx/em28xx-audio.c')
-rw-r--r--linux/drivers/media/video/em28xx/em28xx-audio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/linux/drivers/media/video/em28xx/em28xx-audio.c b/linux/drivers/media/video/em28xx/em28xx-audio.c
index 076a49dc0..904973305 100644
--- a/linux/drivers/media/video/em28xx/em28xx-audio.c
+++ b/linux/drivers/media/video/em28xx/em28xx-audio.c
@@ -299,6 +299,12 @@ static int snd_em28xx_capture_open(struct snd_pcm_substream *substream)
dprintk("opening device and trying to acquire exclusive lock\n");
+ if (!dev) {
+ printk(KERN_ERR "BUG: em28xx can't find device struct."
+ " Can't proceed with open\n");
+ return -ENODEV;
+ }
+
/* Sets volume, mute, etc */
dev->mute = 0;