[linux-dvb] s2-lipliandvb oops (cx88) -> cx88 maintainer ?

Andy Walls awalls at radix.net
Wed Jan 7 01:17:39 CET 2009


On Tue, 2009-01-06 at 21:01 +0100, Gregoire Favre wrote:
> On Tue, Jan 06, 2009 at 05:09:26PM -0200, Mauro Carvalho Chehab wrote:
> 
> Hello,
> 
> > I've just commit a patch that should fix this and another reported issue when selecting parts of cx88 code as module and other parts as monolithic. 
> > 
> > Could you please test if the patch also fixed the OOPS and doesn't generate any regression?
> 
> OoO not good :
> 
> cx88[0]: wm8775' i2c attach [addr=0x1b,client=wm8775']
> cx88[0]/0: registered device video0 [v4l2]
> cx88[0]/0: registered device vbi0
> cx88[0]/0: registered device radio0
> cx8800 0000:04:05.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
> cx88[1]: subsystem: 14f1:0084, board: Geniatech DVB-S [card=52,autodetected], frontend(s): 1
> cx88[1]: TV tuner type 4, Radio tuner type -1
> cx88[1]: i2c register ok
> cx88[1]/0: found at 0000:04:05.0, rev: 3, irq: 20, latency: 64, mmio: 0xd9000000
> cx88[1]/0: registered device video1 [v4l2]
> cx88[1]/0: registered device vbi1
> cx2388x alsa driver version 0.0.6 loaded
> cx88_audio 0000:04:02.1: PCI INT A -> GSI 23 (level, low) -> IRQ 23
> cx88[0]/1: CX88x/0: ALSA support for cx2388x boards
> cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
> cx88[0]/2: cx2388x 8802 Driver Manager
> cx88-mpeg driver manager 0000:04:02.2: PCI INT A -> GSI 23 (level, low) -> IRQ 23
> cx88[0]/2: found at 0000:04:02.2, rev: 5, irq: 23, latency: 64, mmio: 0xdd000000
> cx8802_probe() allocating 2 frontend(s)
> cx88[1]/2: cx2388x 8802 Driver Manager
> cx88-mpeg driver manager 0000:04:05.2: PCI INT A -> GSI 20 (level, low) -> IRQ 20
> cx88[1]/2: found at 0000:04:05.2, rev: 3, irq: 20, latency: 64, mmio: 0xda000000
> cx8802_probe() allocating 1 frontend(s)
> cx88/2: cx2388x dvb driver version 0.0.6 loaded
> cx88/2: registering cx8802 driver, type: dvb access: shared
> cx88[0]/2: subsystem: 0070:6902, board: Hauppauge WinTV-HVR4000 DVB-S/S2/T/Hybrid [card=68]
> cx88[0]/2-dvb: cx8802_dvb_probe
> cx88[0]/2-dvb:  ->being probed by Card=68 Name=cx88[0], PCI 04:02
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
> IP: [<ffffffffa090e15a>] vp3054_i2c_probe+0x1a/0x160 [cx88_vp3054_i2c]
> PGD bfb9067 PUD bfb8067 PMD 0
> Oops: 0000 [#1] PREEMPT SMP
> last sysfs file: /sys/devices/pci0000:00/0000:00:1e.0/0000:04:05.0/video4linux/vbi1/index
> CPU 1
> Modules linked in: cx88_dvb(+) cx88_vp3054_i2c cx8802 videobuf_dvb cx88_alsa wm8775 tuner_simple tuner_types tda9887 tda8290 tuner cx8800 cx88xx i2c_algo_bit tveeprom v4l2_common videodev v4l1_compat v4l2_compat_ioctl32 btcx_risc videobuf_dma_sg videobuf_core stv0299 budget_ci budget_core dvb_core saa7146 ttpci_eeprom ir_common udf ipv6 coretemp w83627ehf w83791d hwmon_vid hwmon nfs lockd sunrpc firewire_ohci firewire_core crc_itu_t nvidia(P) ohci1394 i2c_i801 ieee1394 snd_hda_intel usb_storage [last unloaded: v4l1_compat]
> Pid: 13797, comm: modprobe Tainted: P           2.6.28-gentoo #1
> RIP: 0010:[<ffffffffa090e15a>]  [<ffffffffa090e15a>] vp3054_i2c_probe+0x1a/0x160 [cx88_vp3054_i2c]
> RSP: 0018:ffff88001f1edd18  EFLAGS: 00010246
> RAX: 0000000000000045 RBX: 0000000000000000 RCX: 0000000000000007
> RDX: ffff8800a78b1000 RSI: 0000000000000046 RDI: 0000000000000000
> RBP: ffff880037bad000 R08: 0000000000000000 R09: 0000000000000001
> R10: ffff88001f1edc68 R11: 00000000807ca320 R12: 0000000000000000
> R13: 0000000000000000 R14: 000000000155d0e0 R15: 000000000155d0f8
> FS:  00007fd0a645f6f0(0000) GS:ffff88017f803780(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> CR2: 0000000000000000 CR3: 000000001f35c000 CR4: 00000000000006e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> Process modprobe (pid: 13797, threadinfo ffff88001f1ec000, task ffff88017e4cc2c0)
> Stack:
>  0000000000000070 00000000ffffffed ffff880037bad000 0000000000000000
>  0000000000000000 ffffffffa0a168d8 0000000000000000 0000000000000000
>  ffff88002dba7838 ffff88001f1edd78 0000000000000000 ffff88007f8e81e0
> Call Trace:
>  [<ffffffffa0a168d8>] ? cx8802_dvb_probe+0x78/0x1de0 [cx88_dvb]
>  [<ffffffff802f3019>] ? __sysfs_add_one+0x39/0xb0
>  [<ffffffffa0a1038b>] ? cx8802_register_driver+0x1cb/0x250 [cx8802]
>  [<ffffffffa0a18700>] ? dvb_init+0x0/0x30 [cx88_dvb]
>  [<ffffffff80209042>] ? _stext+0x42/0x1b0
>  [<ffffffff802670bc>] ? load_module+0x177c/0x19b0
>  [<ffffffff80247c90>] ? msleep+0x0/0x40
>  [<ffffffff802673a5>] ? sys_init_module+0xb5/0x1e0
>  [<ffffffff8020bbcb>] ? system_call_fastpath+0x16/0x1b
> Code: 98 df 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 48 83 ec 28 48 89 5c 24 08 48 89 6c 24 10 4c 89 64 24 18 4c 89 6c 24 20 31 db <4c> 8b 27 48 89 fd 41 83 bc 24 c0 06 00 00 2a 74 1b 89 d8 48 8b
> RIP  [<ffffffffa090e15a>] vp3054_i2c_probe+0x1a/0x160 [cx88_vp3054_i2c]
>  RSP <ffff88001f1edd18>
> CR2: 0000000000000000
> ---[ end trace 00734a6876437fa0 ]---
> 
> ksymoops 2.4.11 on x86_64 2.6.28-gentoo.  Options used
>      -V (default)
>      -k /proc/ksyms (default)
>      -l /proc/modules (default)
>      -o /lib/modules/2.6.28-gentoo/ (default)
>      -m /usr/src/linux/System.map (default)
> 
> Warning: You did not tell me where to find symbol information.  I will
> assume that the log matches the kernel and modules that are running
> right now and I'll use the default options above for symbol resolution.
> If the current kernel and/or modules do not match the log, you can get
> more accurate output by telling me the kernel version and where to find
> map, modules, ksyms etc.  ksymoops -h explains the options.
> 
> Error (regular_file): read_ksyms stat /proc/ksyms failed
> No modules in ksyms, skipping objects
> No ksyms, skipping lsmod
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
> Oops: 0000 [#1] PREEMPT SMP
> CPU 1
> Pid: 13797, comm: modprobe Tainted: P           2.6.28-gentoo #1
> RIP: 0010:[<ffffffffa090e15a>]  [<ffffffffa090e15a>] vp3054_i2c_probe+0x1a/0x160 [cx88_vp3054_i2c]
> Using defaults from ksymoops -t elf64-x86-64 -a i386:x86-64
> RSP: 0018:ffff88001f1edd18  EFLAGS: 00010246
> RAX: 0000000000000045 RBX: 0000000000000000 RCX: 0000000000000007
> RDX: ffff8800a78b1000 RSI: 0000000000000046 RDI: 0000000000000000
> RBP: ffff880037bad000 R08: 0000000000000000 R09: 0000000000000001
> R10: ffff88001f1edc68 R11: 00000000807ca320 R12: 0000000000000000
> R13: 0000000000000000 R14: 000000000155d0e0 R15: 000000000155d0f8
> FS:  00007fd0a645f6f0(0000) GS:ffff88017f803780(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> CR2: 0000000000000000 CR3: 000000001f35c000 CR4: 00000000000006e0
>  0000000000000070 00000000ffffffed ffff880037bad000 0000000000000000
>  0000000000000000 ffffffffa0a168d8 0000000000000000 0000000000000000
>  ffff88002dba7838 ffff88001f1edd78 0000000000000000 ffff88007f8e81e0
> Call Trace:
>  [<ffffffffa0a168d8>] ? cx8802_dvb_probe+0x78/0x1de0 [cx88_dvb]
>  [<ffffffff802f3019>] ? __sysfs_add_one+0x39/0xb0
>  [<ffffffffa0a1038b>] ? cx8802_register_driver+0x1cb/0x250 [cx8802]
>  [<ffffffffa0a18700>] ? dvb_init+0x0/0x30 [cx88_dvb]
>  [<ffffffff80209042>] ? _stext+0x42/0x1b0
>  [<ffffffff802670bc>] ? load_module+0x177c/0x19b0
>  [<ffffffff80247c90>] ? msleep+0x0/0x40
>  [<ffffffff802673a5>] ? sys_init_module+0xb5/0x1e0
>  [<ffffffff8020bbcb>] ? system_call_fastpath+0x16/0x1b
> Code: 98 df 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 48 83 ec 28 48 89 5c 24 08 48 89 6c 24 10 4c 89 64 24 18 4c 89 6c 24 20 31 db <4c> 8b 27 48 89 fd 41 83 bc 24 c0 06 00 00 2a 74 1b 89 d8 48 8b
> 
> 
> >>RIP; ffffffffa090e15a <_end+20126eea/7ee18d90>   <=====
> 
> >>RDX; ffff8800a78b1000 <phys_startup_64+ffff8800a76b1000/ffffffff80000000>
> >>RBP; ffff880037bad000 <phys_startup_64+ffff8800379ad000/ffffffff80000000>
> >>R10; ffff88001f1edc68 <phys_startup_64+ffff88001efedc68/ffffffff80000000>
> >>R11; 00000000807ca320 <phys_startup_64+805ca320/ffffffff80000000>
> >>R14; 000000000155d0e0 <phys_startup_64+135d0e0/ffffffff80000000>
> >>R15; 000000000155d0f8 <phys_startup_64+135d0f8/ffffffff80000000>
> 
> Trace; ffffffffa0a168d8 <_end+2022f668/7ee18d90>
> Trace; ffffffff802f3019 <__sysfs_add_one+39/b0>
> Trace; ffffffffa0a1038b <_end+2022911b/7ee18d90>
> Trace; ffffffffa0a18700 <_end+20231490/7ee18d90>
> Trace; ffffffff80209042 <do_one_initcall+42/1b0>
> Trace; ffffffff802670bc <load_module+177c/19b0>
> Trace; ffffffff80247c90 <msleep+0/40>
> Trace; ffffffff802673a5 <sys_init_module+b5/1e0>
> Trace; ffffffff8020bbcb <system_call_fastpath+16/1b>
> 
> Code;  ffffffffa090e12f <_end+20126ebf/7ee18d90>
> 0000000000000000 <_RIP>:
> Code;  ffffffffa090e12f <_end+20126ebf/7ee18d90>
>    0:   98                        cwtl   
> Code;  ffffffffa090e130 <_end+20126ec0/7ee18d90>
>    1:   df 66 66                  fbld   0x66(%rsi)
> Code;  ffffffffa090e133 <_end+20126ec3/7ee18d90>
>    4:   66 66 66 66 2e 0f 1f      nopw   %cs:0x0(%rax,%rax,1)
> Code;  ffffffffa090e13a <_end+20126eca/7ee18d90>
>    b:   84 00 00 00 00 00 
> Code;  ffffffffa090e140 <_end+20126ed0/7ee18d90>
>   11:   48 83 ec 28               sub    $0x28,%rsp
> Code;  ffffffffa090e144 <_end+20126ed4/7ee18d90>
>   15:   48 89 5c 24 08            mov    %rbx,0x8(%rsp)
> Code;  ffffffffa090e149 <_end+20126ed9/7ee18d90>
>   1a:   48 89 6c 24 10            mov    %rbp,0x10(%rsp)
> Code;  ffffffffa090e14e <_end+20126ede/7ee18d90>
>   1f:   4c 89 64 24 18            mov    %r12,0x18(%rsp)
> Code;  ffffffffa090e153 <_end+20126ee3/7ee18d90>
>   24:   4c 89 6c 24 20            mov    %r13,0x20(%rsp)
> Code;  ffffffffa090e158 <_end+20126ee8/7ee18d90>
>   29:   31 db                     xor    %ebx,%ebx
> Code;  ffffffffa090e15a <_end+20126eea/7ee18d90>   <=====
>   2b:   4c 8b 27                  mov    (%rdi),%r12   <=====
> Code;  ffffffffa090e15d <_end+20126eed/7ee18d90>
>   2e:   48 89 fd                  mov    %rdi,%rbp
> Code;  ffffffffa090e160 <_end+20126ef0/7ee18d90>
>   31:   41 83 bc 24 c0 06 00      cmpl   $0x2a,0x6c0(%r12)
> Code;  ffffffffa090e167 <_end+20126ef7/7ee18d90>
>   38:   00 2a 
> Code;  ffffffffa090e169 <_end+20126ef9/7ee18d90>
>   3a:   74 1b                     je     57 <_RIP+0x57>
> Code;  ffffffffa090e16b <_end+20126efb/7ee18d90>
>   3c:   89 d8                     mov    %ebx,%eax
> Code;  ffffffffa090e16d <_end+20126efd/7ee18d90>
>   3e:   48                        rex.W
> Code;  ffffffffa090e16e <_end+20126efe/7ee18d90>
>   3f:   8b                        .byte 0x8b
> 
> CR2: 0000000000000000
> 
> 1 warning and 1 error issued.  Results may not be reliable.


This appears very much the same as Gregoire's original oops that I
looked at.  Whatever Gregoire tested here, acted the same as the
baseline case.

int vp3054_i2c_probe(struct cx8802_dev *dev)
{
        struct cx88_core *core = dev->core;

"dev" is NULL in this call and the assignment causes the core dump.

After a cursory glance at the changes, I'm not sure how this comes
about.  Sorry.

Regards,
Andy








More information about the linux-dvb mailing list