Hi,

I get the following fault on insmod. I am relatively new to Linux kernel development, any help would be greatly appreciated.

This issue seems to occur on some calls to insmod, usually after if have loaded and unloaded the module a few time.

In the trace below the call in question is pci_get_device(). I switched to pci_find_device() and the issue goes away.

Here is the log:

<1>BUG: unable to handle kernel paging request at virtual address 49544449
<1> printing eip:
<4>c04dc6e5
<1>15e3c000 -> *pde = 00000000:1ec10001
<1>1fa10000 -> *pme = 00000000:00000000
<0>Oops: 0000 [#1]
.
.
.
<0>Call Trace:
<0> [<c04dbcc9>] kobject_get+0xf/0x13
<0> [<c053fe79>] get_device+0x10/0x19
<0> [<c04e8474>] pci_dev_get+0xf/0x13
<0> [<c04e8b7c>] pci_get_subsys+0xbe/0xdb
<0> [<c04e8baf>] pci_get_device+0x16/0x19
<0> [<ee41f76d>] hal_smmp_device_scan+0xf3/0x10e [smmp]
<0> [<ee379099>] smmp_init+0x99/0xf1 [smmp]
<0> [<c043667b>] sys_init_module+0x17de/0x1977
<0> [<c0404ea7>] syscall_call+0x7/0xb
<0>DWARF2 unwinder stuck at syscall_call+0x7/0xb
<4>
<0>Leftover inexact backtrace:
<4>
<0> =======================
<0>Code: 97 f2 ff 8b 03 48 74 0c f0 ff 0b 0f 94 c0 31 d2 84 c0 74 09 89 d8 ff d6 ba 01 00 00 00 83 c4 14 89 d0 5b 5e c3 53 89 c3 83 ec 14 <8b> 00 85 c0 75 32 e8 69 fa f3 ff 89 44 24 10 c7 44 24 0c d1 3d
<0>EIP: [<c04dc6e5>] kref_get+0x6/0x49 SS:ESP 0069:d5253e10

-ssm