第一次手动加载insmod c5irq.ko,可以正常加载,然后rmmod c5irq.ko,再重新加载c5irq.ko,打印如下错误:
Unable to handle kernel paging request at virtual address c01c3000, epc == 808060ce
Oops: 00000000
CURRENT PROCESS:
COMM=insmod PID=123
TEXT=00008000-000c024c DATA=000c1f1c-000c2171 BSS=000c2171-000e4000
USER-STACK=7f914e60 KERNEL-STACK=8021a940
PC: 0x808060ce
orig_a0: 0xc01e912c
PSR: 0x80140301
a0: 0xc01e912c a1: 0xc01c312c a2: 0x800a0341 a3: 0x00000063
r4: 0x8023eac0 r5: 0x8023e9c0 r6: 0x80b253cc r7: 0x800a0340
r8: 0x8023eacc r9: 0x800a0341 r10: 0x00000000 r11: 0x80b253dc
r12 0x00000000 r13: 0x00000003 r15: 0x80656462
r16:0x00000022 r17: 0x00000000 r18: 0x8023ea00 r19: 0x00001b7f
r20 0x00000001 r21: 0x00000000 r22: 0x00000000 r23: 0x00000004
r24 0x00000076 r25: 0x0000000c r26: 0x2ab87a40 r27: 0x00000000
r28 0x2abf1000 r29: 0x00000000 r30: 0x00000000 tls: 0x00000001
hi 0x00d086e6 lo: 0xdf000000
CODE:
808060b0: a3408140 23002100 fffce922 6cc3783c
808060c0: 000007f8 21000404 000ee903 81408060
808060d0: 2000648e 31010ff9 60063000 c401648c
808060e0: 783c0c40 783c6c0f 001ee902 0000d9a0
KERNEL STACK:
80349bf8: 00000000 80b247d4 9e102500 800a0301
80349c08: 00000000 80349c28 00000000 80aa3c8c
80349c18: 9f40a100 8023eac0 8023e9c0 80b253cc
80349c28: 800a0340 8023eacc 800a0341 80627910
80349c38: 00000001 80656462 808060ce 80140301
80349c48: 7f914d18 c01e912c c01e912c c01c312c
80349c58: 800a0341 00000063 8023eac0 8023e9c0
80349c68: 80b253cc 800a0340 8023eacc 800a0341
80349c78: 00000000 80b253dc 00000000 00000003
80349c88: 00000022 00000000 8023ea00 00001b7f
80349c98: 00000001 00000000 00000000 00000004
80349ca8: 00000076 0000000c 2ab87a40 00000000
Disabling lock debugging due to kernel taint
Segmentation fault
原因:
module_init时request_irq,module_exit时没有进行free_irq