• Dmitri Belimov's avatar
    V4L/DVB (8020): Fix callbacks functions of saa7134_empress · a14fe960
    Dmitri Belimov authored
    If I try v4l2-ctl --all -d /dev/video1 or v4l2-ctl --streamon -d /dev/video1
    modules crashed:
    
    *pde = 00000000
    Modules linked in: ac battery loop saa7134_empress(F) saa6752hs(F) tuner_simple(F) tuner_types(F) tea5767(F) tda9887(F) tda8290(F) tea5761(F) tuner(F) snd_cmipci snd_pcm snd_page_alloc snd_opl3_lib saa7134(F) snd_mpu401 parport_pc parport snd_timer snd_hwdep snd_mpu401_uart floppy rtc psmouse videodev(F) v4l1_compat(F) compat_ioctl32(F) v4l2_common(F) videobuf_dma_sg(F) videobuf_core(F) snd_rawmidi snd_seq_device via_ircc pcspkr snd ir_kbd_i2c(F) irda soundcore ir_common(F) crc_ccitt tveeprom(F) i2c_viapro i2c_core button via_agp agpgart evdev ext3 jbd mbcache ide_cd_mod cdrom ide_disk 8139cp via82cxxx ide_core 8139too mii ehci_hcd uhci_hcd usbcore thermal processor fan
    
    EIP is at __mutex_lock_slowpath+0x29/0x7b
     DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
    Process v4l2-ctl (pid: 2742, ti=ced7e000 task=cf325260 task.ti=ced7e000)
           d08e5411 00000000 ced7fed4 00000000 d0975acb 40045612 cfa86ee0 ffffffcd
           cf2b7000 ced7febc c03858d6 00000019 00000292 d089e4ec cf37b2a0 d089e4a0
    Call Trace:
     [<c028b52b>] mutex_lock+0xa/0xb
     [<d08e5411>] videobuf_streamon+0xf/0x9a [videobuf_core]
     [<d0975acb>] __video_do_ioctl+0x136a/0x2d68 [videodev]
     [<d088f789>] task_end_request+0x40/0x51 [ide_core]
     [<d088c4aa>] ide_intr+0x187/0x192 [ide_core]
     [<c016a551>] mntput_no_expire+0x11/0x64
     [<c0160b1c>] path_walk+0x90/0x98
     [<d0977738>] video_ioctl2+0x173/0x239 [videodev]
     [<c0140936>] filemap_fault+0x202/0x370
     [<c014930a>] __do_fault+0x2c3/0x2fe
     [<c014ab03>] handle_mm_fault+0x22a/0x49f
     [<c0162737>] vfs_ioctl+0x47/0x5d
     [<c0162992>] do_vfs_ioctl+0x245/0x258
     [<c01629e6>] sys_ioctl+0x41/0x5b
     [<c01036a6>] sysenter_past_esp+0x5f/0x85
     =======================
    
    After this fix all of that commands works without problem:
    
    v4l2-ctl --all -d /dev/video1
    
    Driver Info:
    	Driver name   : saa7134
    	Card type     : Beholder BeholdTV M6 Extra
    	Bus info      : PCI:0000:00:0d.0
    	Driver version: 526
    	Capabilities  : 0x05000001
    		Video Capture
    		Read/Write
    		Streaming
    Format Video Capture:
    	Width/Height  : 720/576
    	Pixel Format  : MPEG
    	Field         : Any
    	Bytes per Line: 0
    	Size Image    : 58656
    	Colorspace    : Unknown (00000000)
    Video input : 0 (CCIR656)
    Video Standard = 0x000000ff
    	PAL-B/B1/G/H/I/D/D1/K
    
    
    P.S. data from /dev/video1 is not correct :(( .
    Signed-off-by: default avatarBeholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
    a14fe960
saa7134-empress.c 11.2 KB