重复insmod同一个模块导致段错误

第一次手动加载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

猜你喜欢

转载自blog.csdn.net/heliangbin87/article/details/81215905
今日推荐