hello,
i have to implement for a school project a minimal file system driver. i get this oops
everytime a try to mount my fs. can someone help me get some useful information out of the following output. thank you.
BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
00000000
*pde = 00000000
Oops: 0000 [#1]
PREEMPT DEBUG_PAGEALLOC
Modules linked in: pitix netconsole vmxnet
CPU: 0
EIP: 0060:[<00000000>] Tainted: P VLI
EFLAGS: 00010202 (2.6.18 #7)
EIP is at 0x0
eax: c38ccd74 ebx: c38ccd74 ecx: c31c3000 edx: c0669820
esi: c3d67bf8 edi: 00000008 ebp: c31c3d78 esp: c31c3d64
ds: 007b es: 007b ss: 0068
Process mount (pid: 2578, ti=c31c3000 task=c3e38580 task.ti=c31c3000)
Stack: c882b29b 00000200 00000000 c3d67bf8 00000000 c31c3db8 c0163e48 c882c140
c4746c90 c3d67bf8 706f6f6c 00070030 c7eef200 00000246 000000d0 c31c3dc0
c2efc000 00000000 c2efc000 00000000 c882c140 c31c3de0 c882b0ff c2efd000
Call Trace:
Inexact backtrace:
[] show_stack_log_lvl+0x9c/0xd0
[] show_registers+0x167/0x1f0
[] die+0x10c/0x2c0
[] do_page_fault+0x2f8/0x620
[] error_code+0x39/0x40
[] get_sb_bdev+0xf8/0x150
[] pitix_get_sb+0x2f/0x40 [pitix]
[] vfs_kern_mount+0x35/0x90
[] do_kern_mount+0x2c/0x40
[] do_mount+0x250/0x640
[] sys_mount+0x6a/0xb0
[] sysenter_past_esp+0x56/0x99
Code: Bad EIP value.
EIP: [<00000000>] 0x0 SS:ESP 0068:c31c3d64
BUG: unable to handle kernel
BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
00000000
*pde = 00000000
Oops: 0000 [#1]
PREEMPT DEBUG_PAGEALLOC
Modules linked in: pitix netconsole vmxnet
CPU: 0
EIP: 0060:[<00000000>] Tainted: P VLI
EFLAGS: 00010202 (2.6.18 #7)
EIP is at 0x0
eax: c38ccd74 ebx: c38ccd74 ecx: c31c3000 edx: c0669820
esi: c3d67bf8 edi: 00000008 ebp: c31c3d78 esp: c31c3d64
ds: 007b es: 007b ss: 0068
Process mount (pid: 2578, ti=c31c3000 task=c3e38580 task.ti=c31c3000)
Stack: c882b29b 00000200 00000000 c3d67bf8 00000000 c31c3db8 c0163e48 c882c140
c4746c90 c3d67bf8 706f6f6c 00070030 c7eef200 00000246 000000d0 c31c3dc0
c2efc000 00000000 c2efc000 00000000 c882c140 c31c3de0 c882b0ff c2efd000
Call Trace:
Inexact backtrace:
[c01049ec] show_stack_log_lvl+0x9c/0xd0
[c0104b87] show_registers+0x167/0x1f0
[c0104d1c] die+0x10c/0x2c0
[c031a4a8] do_page_fault+0x2f8/0x620
[c01042a9] error_code+0x39/0x40
[c0163e48] get_sb_bdev+0xf8/0x150
[c882b0ff] pitix_get_sb+0x2f/0x40 [pitix]
[c0163965] vfs_kern_mount+0x35/0x90
[c01639fc] do_kern_mount+0x2c/0x40
[c01793c0] do_mount+0x250/0x640
[c017981a] sys_mount+0x6a/0xb0
[c010316d] sysenter_past_esp+0x56/0x99
Code: Bad EIP value.
EIP: [<00000000>] 0x0 SS:ESP 0068:c31c3d64
You're dereferencing a NULL
You're dereferencing a NULL pointer.
Is 'pitix' your module? If so, check pitix_get_sb() to see if
everything makes sense. From the way I interpret this (and I could be
wrong), pitix_get_sb() might be calling get_sb_bdev() with a bad pointer,
especially one that's a NULL pointer. Check your code around that region.
Oops tutorial
Here's a link to an excellent tutorial on troubleshooting an oops.