[linux-dvb] Null pointer in dvb_device_open

Ben Backx ben at bbackx.com
Wed Feb 20 12:15:02 CET 2008


Sorry for the messed-up dmesg-output, hopefully this time it's better:

[  484.858908] BUG: unable to handle kernel NULL pointer dereference at
virtual address 00000000
[  484.858917]  printing eip:
[  484.858919] f8cd360a
[  484.858921] *pde = 00000000
[  484.858924] Oops: 0000 [#1]
[  484.858925] SMP 
[  484.858928] Modules linked in: dvb_driver dvb_core ipv6 af_packet rfcomm
l2cap bluetooth ppdev cpufreq_ondemand cpufreq_stats cpufreq_powersave
cpufreq_userspace freq_table cpufreq_conservative sbs button ac container
dock video battery sbp2 lp snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm_oss
snd_mixer_oss snd_pcm snd_seq_dummy snd_seq_oss snd_seq_midi snd_rawmidi
snd_seq_midi_event snd_seq snd_timer snd_seq_device snd soundcore parport_pc
parport pcspkr snd_page_alloc shpchp pci_hotplug i2c_nforce2 i2c_core
nvidia_agp agpgart dv1394 evdev ext3 jbd mbcache sg sd_mod ide_cd cdrom
usbhid hid amd74xx ide_core sata_sil ohci1394 ieee1394 ata_generic libata
scsi_mod forcedeth ehci_hcd ohci_hcd usbcore thermal processor fan fuse
apparmor commoncap
[  484.858978] CPU:    0
[  484.858979] EIP:    0060:[<f8cd360a>]    Not tainted VLI
[  484.858981] EFLAGS: 00010293   (2.6.22-14-generic #1)
[  484.858999] EIP is at dvb_device_open+0x3a/0x120 [dvb_core]
[  484.859002] eax: eafcfc04   ebx: 76697264   ecx: f8ce6600   edx: 00000003
[  484.859006] esi: 00000000   edi: eafcfc0c   ebp: eafcfc00   esp: ea123ec0
[  484.859009] ds: 007b   es: 007b   fs: 00d8  gs: 0033  ss: 0068
[  484.859012] Process scan (pid: 5981, ti=ea122000 task=ea766f90
task.ti=ea122000)
[  484.859015] Stack: ec9ae960 eb2aa8d0 00000003 f8cd35d0 f8ce65a0 00000000
eb2aa8d0 c0183466
[  484.859021]        ec9ae960 00000003 ec9ae960 eb2aa8d0 00000000 c01833c0
c017ec48 dff5ac00 
[  484.859028]        e9a2c440 ec9ae960 ffffff9c ea123f30 00000003 c017ee05
ec9ae960 00000000 
[  484.859034] Call Trace:
[  484.859038]  [<f8cd35d0>] dvb_device_open+0x0/0x120 [dvb_core]
[  484.859048]  [<c0183466>] chrdev_open+0xa6/0x190
[  484.859058]  [<c01833c0>] chrdev_open+0x0/0x190
[  484.859062]  [<c017ec48>] __dentry_open+0xb8/0x1c0
[  484.859073]  [<c017ee05>] nameidata_to_filp+0x35/0x40
[  484.859079]  [<c017ee60>] do_filp_open+0x50/0x60
[  484.859085]  [<c02f20ea>] schedule+0x2ca/0x890
[  484.859099]  [<c017eebe>] do_sys_open+0x4e/0xf0
[  484.859105]  [<c01813b1>] sys_write+0x41/0x70
[  484.859110]  [<c017ef9c>] sys_open+0x1c/0x20
[  484.859114]  [<c01041d2>] sysenter_past_esp+0x6b/0xa9
[  484.859128]  =======================
[  484.859129] Code: 50 34 a1 6c 66 ce f8 81 e2 ff ff 0f 00 89 54 24 08 eb
02 89 d8 8b 18 0f 18 03 90 3d 6c 66 ce f8 74 35 8d 68 fc 8b 75 0c 8d 78 08
<8b> 0e 0f 18 01 90 39 fe 74 de 8b 46 14 8b 55 00 c1 e0 04 0b 46 
[  484.859154] EIP: [<f8cd360a>] dvb_device_open+0x3a/0x120 [dvb_core]
SS:ESP 0068:ea123ec0


		_____________________________________________
		From: Ben Backx [mailto:ben at bbackx.com] 
		Sent: 20 February 2008 12:07
		To: 'linux-dvb at linuxtv.org'
		Subject: Null pointer in dvb_device_open
		

		Hi,

		I'm (still) developing a driver for a dvb-device, I'm making
some progress, but I'm currently stuck at a null-pointer in dvb_device_open.
The (relevant) dmesg-output:

		[  484.858908] BUG: unable to handle kernel NULL pointer
dereference at virtual address 00000000[  484.858917]  printing eip:[
484.858919] f8cd360a[  484.858921] *pde = 00000000[  484.858924] Oops: 0000
[#1][  484.858925] SMP [  484.858928] Modules linked in: dvb_driver dvb_core
ipv6 af_packet rfcomm l2cap bluetooth ppdev cpufreq_ondemand cpufreq_stats
cpufreq_powersave cpufreq_userspace freq_table cpufreq_conservative sbs
button ac container dock video battery sbp2 lp snd_intel8x0 snd_ac97_codec
ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy snd_seq_oss
snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device
snd soundcore parport_pc parport pcspkr snd_page_alloc shpchp pci_hotplug
i2c_nforce2 i2c_core nvidia_agp agpgart dv1394 evdev ext3 jbd mbcache sg
sd_mod ide_cd cdrom usbhid hid amd74xx ide_core sata_sil ohci1394 ieee1394
ata_generic libata scsi_mod forcedeth ehci_hcd ohci_hcd usbcore thermal
processor fan fuse apparmor commoncap[  484.858978] CPU:    0[  484.858979]
EIP:    0060:[<f8cd360a>]    Not tainted VLI[  484.858981] EFLAGS: 00010293
(2.6.22-14-generic #1)[  484.858999] EIP is at dvb_device_open+0x3a/0x120
[dvb_core][  484.859002] eax: eafcfc04   ebx: 76697264   ecx: f8ce6600
edx: 00000003[  484.859006] esi: 00000000   edi: eafcfc0c   ebp: eafcfc00
esp: ea123ec0[  484.859009] ds: 007b   es: 007b   fs: 00d8  gs: 0033  ss:
0068[  484.859012] Process scan (pid: 5981, ti=ea122000 task=ea766f90
task.ti=ea122000)[  484.859015] Stack: ec9ae960 eb2aa8d0 00000003 f8cd35d0
f8ce65a0 00000000 eb2aa8d0 c0183466 [  484.859021]        ec9ae960 00000003
ec9ae960 eb2aa8d0 00000000 c01833c0 c017ec48 dff5ac00 [  484.859028]
e9a2c440 ec9ae960 ffffff9c ea123f30 00000003 c017ee05 ec9ae960 00000000 [
484.859034] Call Trace:[  484.859038]  [<f8cd35d0>]
dvb_device_open+0x0/0x120 [dvb_core][  484.859048]  [<c0183466>]
chrdev_open+0xa6/0x190[  484.859058]  [<c01833c0>] chrdev_open+0x0/0x190[
484.859062]  [<c017ec48>] __dentry_open+0xb8/0x1c0[  484.859073]
[<c017ee05>] nameidata_to_filp+0x35/0x40[  484.859079]  [<c017ee60>]
do_filp_open+0x50/0x60[  484.859085]  [<c02f20ea>] schedule+0x2ca/0x890[
484.859099]  [<c017eebe>] do_sys_open+0x4e/0xf0[  484.859105]  [<c01813b1>]
sys_write+0x41/0x70[  484.859110]  [<c017ef9c>] sys_open+0x1c/0x20[
484.859114]  [<c01041d2>] sysenter_past_esp+0x6b/0xa9[  484.859128]
=======================[  484.859129] Code: 50 34 a1 6c 66 ce f8 81 e2 ff ff
0f 00 89 54 24 08 eb 02 89 d8 8b 18 0f 18 03 90 3d 6c 66 ce f8 74 35 8d 68
fc 8b 75 0c 8d 78 08 <8b> 0e 0f 18 01 90 39 fe 74 de 8b 46 14 8b 55 00 c1 e0
04 0b 46 [  484.859154] EIP: [<f8cd360a>] dvb_device_open+0x3a/0x120
[dvb_core] SS:ESP 0068:ea123ec0

		Since dvb_device_open is a function of the dvb_core, I'm
guessing the function is ok and there's something wrong with my part of the
code. But, as far as I can see, I never explicitly call or register the
function, so there's probably something wrong with the initialisation. I
don't really see what can go wrong, so if any of you guys can give me some
hints/tips to what I should pay extra attention, this is really appreciated.


		Greetings,
		Ben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.linuxtv.org/pipermail/linux-dvb/attachments/20080220/dcb085ff/attachment-0001.htm 


More information about the linux-dvb mailing list