首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

给为高人,帮忙看看linux内核崩溃的原因解决方法

2012-03-07 
给为高人,帮忙看看linux内核崩溃的原因Unable to handle kernel NULL pointer dereference at virtual add

给为高人,帮忙看看linux内核崩溃的原因
Unable to handle kernel NULL pointer dereference at virtual address 00000000
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c72f0000
[00000000] *pgd=b7bcd031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1]
Modules linked in: aerial g_inc_110a_driver
CPU: 0
PC is at __irq_svc+0x38/0xa4
LR is at 0xc032f488
pc : [<c0024858>] lr : [<c032f488>] Not tainted
sp : c752fc98 ip : c752fcb0 fp : c752fd54
r10: 00000050 r9 : c752e000 r8 : c034e258
r7 : 00000000 r6 : c752fd74 r5 : c752fccc r4 : ffffffff
r3 : 20000013 r2 : c004b448 r1 : c032f488 r0 : c752fce0
Flags: nZCv IRQs off FIQs on Mode SVC_32 Segment user
Control: 397F
Table: B72F0000 DAC: 00000015
Process inc_110a (pid: 346, stack limit = 0xc752e260)
Stack: (0xc752fc98 to 0xc7530000)
fc80: 000021b8 000021b8
fca0: c0024e69 a0000013 00000000 c752fe08 c752fd74 00000000 c034e258 c752fe08
fcc0: 00000050 c752fd54 c752fcb0 c752fce0 c032f488 c004b448 20000013 ffffffff
fce0: c752fd04 c752fcf0 c0045bdc a0000013 00000001 c7fdda40 c752fd34 c752fd08
fd00: c0046bf4 c0045bc0 c00459cc 20000093 00000001 c05e2d24 00000000 c05e2d24
fd20: 00000000 00000001 c752fd44 00000000 c752fe08 c001b520 00000000 c001b520
fd40: c752fe08 00000000 c752fd6c c752fd58 c004b524 c004b144 c752fd7c c752fd74
fd60: c752fd9c c752fd80 c002bc70 c004b50c c02e1118 c02e10f8 00000000 c02e10f8
fd80: ffffffff 00000000 c03471c8 c7feb5a0 c752fddc c752fda0 c002beac c002bc2c
fda0: c0326740 0000001d c7f94ea0 00000000 c752e000 ffffffff 00000000 c03471c8
fdc0: c7feb5a0 c0024e68 60000013 c752e000 c752fdf4 c752fde0 c002bf8c c002bcac
fde0: ffffffff c752fe3c c752fe04 c752fdf8 c002c004 c002bf78 c752fe6c c752fe08
fe00: c00249cc c002bff8 c752fe34 80000042 80000042 a79c29a7 c4ec4ec5 00000014
fe20: c03471c8 c7feb5a0 c0024e68 4c2eb9c7 c752e000 c752fe6c c752fe70 c752fe50
fe40: 00000fa0 00000000 20000013 ffffffff c005aba8 c0289d5c 00000014 c752feb0
fe60: c752feac c752fe70 c0288a18 c002f984 c752feac c752fe80 c0054bc0 c00545c0
fe80: c0070954 0085f284 00000014 c752feb0 c03300e8 c0024e68 4c2eb9c7 00000000
fea0: c752fee4 c752feb0 c0289d5c c028894c c0352d50 c0352d50 0085f284 c0055120
fec0: c7feb5a0 c0352928 c0016f2c c0016f2c 4c2eb9c7 00000036 c752fef4 c752fee8
fee0: c0289db4 c0289ccc c752ff2c c752fef8 bf001ef0 c0289d9c c752ff28 c752ff10
ff00: c0129fec c7fd86e0 c0016f2c 4c2eb9c7 00000036 c0024e68 c752e000 00000000
ff20: c752ff4c c752ff30 c00a1c6c bf000e1c 00000000 c7fd86e0 00000003 4c2eb9c7
ff40: c752ff7c c752ff50 c00a1f48 c00a1bfc c7f94ea0 4c2eb968 00000000 c7fd86e0
ff60: fffffff7 c0016f2c c0024e68 c752e000 c752ffa4 c752ff80 c00a1fb8 c00a1c94
ff80: 4b3f8a6e 00000001 c0025cac 00000000 00000018 4c2ec490 00000000 c752ffa8
ffa0: c0024cc0 c00a1f84 00000000 00000018 00000003 c0016f2c 4c2eb9c7 00000003
ffc0: 00000000 00000018 4c2ec490 00000036 4002ab3c 003d0f00 40040000 4c2eb9d4
ffe0: 00000078 4c2eb9b8 0000a770 40288dac 20000010 00000003 00000000 00000000
Backtrace:
[<c004b138>] (vprintk+0x0/0x3c4) from [<c004b524>] (printk+0x28/0x30)
[<c004b4fc>] (printk+0x0/0x30) from [<c002bc70>] (__do_kernel_fault+0x50/0x80)
 r3 = C02E10F8 r2 = 00000000 r1 = C02E10F8 r0 = C02E1118
[<c002bc20>] (__do_kernel_fault+0x0/0x80) from [<c002beac>] (do_page_fault+0x20c/0x238)
 r7 = C7FEB5A0 r6 = C03471C8 r5 = 00000000 r4 = FFFFFFFF
[<c002bca0>] (do_page_fault+0x0/0x238) from [<c002bf8c>] (do_translation_fault+0x20/0x80)
[<c002bf6c>] (do_translation_fault+0x0/0x80) from [<c002c004>] (do_PrefetchAbort+0x18/0x1c)
 r5 = C752FE3C r4 = FFFFFFFF
[<c002bfec>] (do_PrefetchAbort+0x0/0x1c) from [<c00249cc>] (__pabt_svc+0x4c/0x80)
[<c002f978>] (sched_clock+0x0/0x90) from [<c0288a18>] (schedule+0xd8/0x678)


 r6 = C752FEB0 r5 = 00000014 r4 = C0289D5C
[<c0288940>] (schedule+0x0/0x678) from [<c0289d5c>] (schedule_timeout+0x9c/0xd0)
[<c0289cc0>] (schedule_timeout+0x0/0xd0) from [<c0289db4>] (schedule_timeout_uninterruptible+0
x24/0x28)
 r7 = 00000036 r6 = 4C2EB9C7 r5 = C0016F2C r4 = C0016F2C
[<c0289d90>] (schedule_timeout_uninterruptible+0x0/0x28) from [<bf001ef0>] (inc_110a_ioctl+0x1
0e0/0x113c [g_inc_110a_driver])
[<bf000e10>] (inc_110a_ioctl+0x0/0x113c [g_inc_110a_driver]) from [<c00a1c6c>] (do_ioctl+0x7c/
0x98)
[<c00a1bf0>] (do_ioctl+0x0/0x98) from [<c00a1f48>] (vfs_ioctl+0x2c0/0x2f0)
 r6 = 4C2EB9C7 r5 = 00000003 r4 = C7FD86E0
[<c00a1c88>] (vfs_ioctl+0x0/0x2f0) from [<c00a1fb8>] (sys_ioctl+0x40/0x64)
 r9 = C752E000 r8 = C0024E68 r6 = C0016F2C r5 = FFFFFFF7
 r4 = C7FD86E0
[<c00a1f78>] (sys_ioctl+0x0/0x64) from [<c0024cc0>] (ret_fast_syscall+0x0/0x2c)
 r6 = 4C2EC490 r5 = 00000018 r4 = 00000000
Code: e1a0100e e885001f e1a096ad e1a09689 (e5998004)
Kernel panic - not syncing: Aiee, killing interrupt handler!

[解决办法]
检查是否引用了空指针?
[解决办法]
关注,以前高低温时出现过这种问题,发现是硬件的事,但反应出来的现象肯定是程序调用的不该使用的地址,例如对空指针操作,或错误的地址操作
[解决办法]

探讨
检查是否引用了空指针?

[解决办法]
看不懂的路过,估计需要高手才能解了
[解决办法]
根据这条语句Unable to handle kernel NULL pointer dereference at virtual address 00000000,以及后面关于page的打印信息可以看出应该是内存出了问题,backtrace的最后打印的是ioctl的相关信息,应该是跟配置相关的。不知道lz是在什么情况下出现崩溃的?
[解决办法]
Unable to handle kernel NULL pointer dereference at virtual address 00000000


[<c004b138>] (vprintk+0x0/0x3c4) from [<c004b524>] (printk+0x28/0x30)
[<c004b4fc>] (printk+0x0/0x30) from [<c002bc70>] (__do_kernel_fault+0x50/0x80)

......
[<c00a1f78>] (sys_ioctl+0x0/0x64) from [<c0024cc0>] (ret_fast_syscall+0x0/0x2c)
 

看到认为是0内存的内容被修改了,异常

楼主可以检查一下sys_ioctl相关附近的代码
[解决办法]
Modules linked in: aerial g_inc_110a_driver
PC is at __irq_svc+0x38/0xa4 ///出错的地方是在__irq_svc 函数的0x38的偏移的地方有个空指针操作
Process inc_110a (pid: 346, stack limit = 0xc752e260)


看上去是你的inc_110a 模块的ioctl操作导致的问题,可能两边同步没做好什么的,这种要结合源代码分析



[解决办法]
在aerial g_inc_110a_driver里是否有空指针?

热点排行