• Takashi Iwai's avatar
    [media] ivtv: Fix Oops when no firmware is loaded · deb29e90
    Takashi Iwai authored
    When ivtv PCM device is accessed at the state where no firmware is
    loaded, it oopses like:
    
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
      IP: [<ffffffffa049a881>] try_mailbox.isra.0+0x11/0x50 [ivtv]
      Call Trace:
        [<ffffffffa049aa20>] ivtv_api_call+0x160/0x6b0 [ivtv]
        [<ffffffffa049af86>] ivtv_api+0x16/0x40 [ivtv]
        [<ffffffffa049b10c>] ivtv_vapi+0xac/0xc0 [ivtv]
        [<ffffffffa049d40d>] ivtv_start_v4l2_encode_stream+0x19d/0x630 [ivtv]
        [<ffffffffa0530653>] snd_ivtv_pcm_capture_open+0x173/0x1c0 [ivtv_alsa]
        [<ffffffffa04526f1>] snd_pcm_open_substream+0x51/0x100 [snd_pcm]
        [<ffffffffa0452853>] snd_pcm_open+0xb3/0x260 [snd_pcm]
        [<ffffffffa0452a37>] snd_pcm_capture_open+0x37/0x50 [snd_pcm]
        [<ffffffffa033f557>] snd_open+0xa7/0x1e0 [snd]
        [<ffffffff8118a628>] chrdev_open+0x88/0x1d0
        [<ffffffff811840be>] do_dentry_open+0x1de/0x270
        [<ffffffff81193a73>] do_last+0x1c3/0xec0
        [<ffffffff81194826>] path_openat+0xb6/0x670
        [<ffffffff81195b65>] do_filp_open+0x35/0x80
        [<ffffffff81185449>] do_sys_open+0x129/0x210
        [<ffffffff815b782d>] system_call_fastpath+0x1a/0x1f
    
    This patch adds the check of firmware at PCM open callback like other
    open callbacks of this driver.
    
    Bugzilla: https://apibugzilla.novell.com/show_bug.cgi?id=875440
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
    deb29e90
ivtv-alsa-pcm.c 9.06 KB