diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-06-14 09:41:18 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-06-26 15:58:47 -0300 |
commit | 83ee87a31dc43a5fd6dee3562c146033c3a4cb39 (patch) | |
tree | 3c8070786261f4994209328901bda6b183077e3c /drivers/media/video/em28xx/em28xx-audio.c | |
parent | 913f5fc209247b607b1994a710315966f4f9d358 (diff) | |
download | linux-83ee87a31dc43a5fd6dee3562c146033c3a4cb39.tar.gz linux-83ee87a31dc43a5fd6dee3562c146033c3a4cb39.tar.bz2 linux-83ee87a31dc43a5fd6dee3562c146033c3a4cb39.zip |
V4L/DVB (8026): Avoids an OOPS if dev struct can't be successfully recovered
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 'drivers/media/video/em28xx/em28xx-audio.c')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-audio.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/em28xx-audio.c b/drivers/media/video/em28xx/em28xx-audio.c index 343dff0f8a04..3c006103c1eb 100644 --- a/drivers/media/video/em28xx/em28xx-audio.c +++ b/drivers/media/video/em28xx/em28xx-audio.c @@ -268,6 +268,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; |