故事背景:V2的主板回来后,用V1的软件下载后,出现了重启,抓串口log,报如下错误。
[ 3.096106] c0 cmt2300a_probe
[ 3.096340] c0 Unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 3.096345] c0 pgd = (ptrval)
[ 3.096349] c0 [00000000] *pgd=00000000
[ 3.096365] c0 Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[ 3.096371] c0 Modules linked in:
[ 3.096385] c0 CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.133 #276
[ 3.096389] c0 Hardware name: Generic DT based system
[ 3.096395] c0 task: (ptrval) task.stack: (ptrval)
[ 3.096409] c0 PC is at __wake_up_common+0x9c/0x16c
[ 3.096417] c0 LR is at __wake_up_locked+0x28/0x30
[ 3.096423] c0 pc : [<c01751e4>] lr : [<c01753c4>] psr: a0000193
[ 3.096429] c0 sp : ee28ba40 ip : ee28ba78 fp : ee28ba74
[ 3.096434] c0 r10: 00000003 r9 : ec0d2000 r8 : ee28a008
[ 3.096440] c0 r7 : 00000001 r6 : c137f03c r5 : c137f034 r4 : 00000000
[ 3.096445] c0 r3 : fffffff4 r2 : 00000000 r1 : 00000003 r0 : c137f038
[ 3.096453] c0 Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none
[ 3.096459] c0 Control: 10c5383d Table: 8000406a DAC: 00000051
[ 3.096464] c0 Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
[ 3.096470] c0 Stack: (0xee28ba40 to 0xee28c000)
[ 3.096483] c0 ba40: 00000000 00000000 00010020 c137f038 c137f034 20000193 00000000 ee28a008
[ 3.096495] c0 ba60: ec0d2000 ee28bb08 ee28ba8c ee28ba78 c01753c4 c0175154 00000000 00000000
[ 3.096507] c0 ba80: ee28baac ee28ba90 c0175f3c c01753a8 00000001 c137eee0 ec0d2068 0000004c
[ 3.096519] c0 baa0: ee28bac4 ee28bab0 c063b998 c0175f00 c063b95c ecfc4940 ee28bb04 ee28bac8
[ 3.096531] c0 bac0: c0190044 c063b968 edd64a24 80000193 00000001 00000000 f0a31000 c1009208
[ 3.096543] c0 bae0: ec0d2068 ec0d2000 00000000 ee28bb78 eca32340 60000013 ee28bb2c ee28bb08
[ 3.096555] c0 bb00: c0190210 c018ff58 00000000 257676ae ee28bb2c ec0d2000 ec0d2068 c1009208
[ 3.096567] c0 bb20: ee28bb4c ee28bb30 c01902ac c01901e4 00000000 ec0d2000 ec0d2068 c1009208
[ 3.096579] c0 bb40: ee28bb64 ee28bb50 c01947f8 c0190270 ed74cc00 c1061688 ee28bb74 ee28bb68
[ 3.096591] c0 bb60: c018f21c c01946bc ee28bba4 ee28bb78 c04fcdf0 c018f200 00000001 257676ae
[ 3.096602] c0 bb80: 00000000 00000000 c0faf5f4 0000002b 00000001 ee28a000 ee28bbb4 ee28bba8
[ 3.096614] c0 bba0: c018f21c c04fcd34 ee28bbdc ee28bbb8 c018f7fc c018f200 ee28bc00 000000a2
[ 3.096626] c0 bbc0: ee28bc00 c11133b0 c100a330 ec0d2000 ee28bbfc ee28bbe0 c0101574 c018f770
[ 3.096638] c0 bbe0: c0a793b4 60000013 ffffffff ee28bc34 ee28bc64 ee28bc00 c010da30 c0101518
[ 3.096650] c0 bc00: ec0d2068 00000000 2dd81000 60000093 60000013 00000000 c1009208 00000001
[ 3.096662] c0 bc20: ec0d2000 ec0d2068 60000013 ee28bc64 ee28bc50 ee28bc50 c0a793b0 c0a793b4
[ 3.096674] c0 bc40: 60000013 ffffffff 00000051 00000000 00000007 ecfc4940 ee28bd1c ee28bc68
[ 3.096685] c0 bc60: c0198448 c0a79374 00000000 ecfc5cb4 ee28bc8c ee28bc80 c0a78f60 c015333c
[ 3.096698] c0 bc80: ee28bcc4 ee28bc90 c032da1c c0a78f3c c0cb98d1 257676ae c1009208 ecfc5e00
[ 3.096710] c0 bca0: c0a80388 c1350f1c c1009208 ec0d20d0 ec0d2068 ec0d2000 ee28bce4 ee28bcc8
[ 3.096722] c0 bcc0: c032dd78 c032d960 ee28bce4 ecfc5a80 ec0d2000 c01985d4 ee28bd1c ee28bce8
[ 3.096734] c0 bce0: c01985d4 c0a7535c 0000004c 257676ae 36370013 ecfc4940 00000000 00000000
[ 3.096746] c0 bd00: 0000004c ec0d20d0 ec0d2068 ec0d2000 ee28bd5c ee28bd20 c01925ec c0198390
[ 3.096757] c0 bd20: c1088cbc c063b95c 60000013 ec0d203c ee28bd4c 00000000 ecfc4940 ec0d2000
[ 3.096769] c0 bd40: ec0d2014 0000004c 00000000 00000000 ee28bd8c ee28bd60 c0192904 c01920c0
[ 3.096780] c0 bd60: 00000001 c137eee0 ed77ea00 c1088cbc 00000000 c137b084 00000000 00000000
[ 3.096792] c0 bd80: ee28bdb4 ee28bd90 c063b778 c019280c c0d29697 00000000 ee28bdb4 c063b5c0
[ 3.096804] c0 bda0: ed77ea10 c1088cbc ee28bdd4 ee28bdb8 c05ee074 c063b5cc c05ee014 ed77ea10
[ 3.096817] c0 bdc0: c137b080 c1088cbc ee28be14 ee28bdd8 c05ebdc8 c05ee020 ee28bdf4 ee28bde8
[ 3.096829] c0 bde0: c07cfc48 c07ce194 ee28be14 ed77ea10 ed77ea44 c1088cbc c05ec048 c0fa50c8
[ 3.096840] c0 be00: c1149d40 c1149d40 ee28be34 ee28be18 c05ec0e4 c05ebbfc 00000001 00000000
[ 3.096852] c0 be20: c1009208 c1088cbc ee28be64 ee28be38 c05eaa70 c05ec054 c0a78e90 ed3dd858
[ 3.096864] c0 be40: ed7824b4 257676ae c1088cbc 00000000 ecfc5a00 c1086a20 ee28be74 ee28be68
[ 3.096876] c0 be60: c05eb6cc c05ea9d8 ee28be9c ee28be78 c05eb06c c05eb6b0 c0d298b3 ee28be88
[ 3.096888] c0 be80: c1088cbc c0f38d10 c1009208 00000000 ee28beb4 ee28bea0 c05ecf04 c05eaf90
[ 3.096901] c0 bea0: ee28a000 c0f38d10 ee28bec4 ee28beb8 c05edfb4 c05ece64 ee28bed4 ee28bec8
[ 3.096913] c0 bec0: c0f38d30 c05edf80 ee28bf4c ee28bed8 c0101dd4 c0f38d1c c0147338 c0f00688
[ 3.096924] c0 bee0: 00000000 ee28be00 ee28bee4 c0df3708 0000013f c0df3708 00000000 00000006
[ 3.096936] c0 bf00: 00000006 00000140 c0df1e08 c0f0067c ee28bf34 eedb9fbb eedb9fd2 257676ae
[ 3.096948] c0 bf20: 00000000 257676ae 00000006 c1009208 00000140 c0f74034 c0fa50c8 c1149d40
[ 3.096959] c0 bf40: ee28bf94 ee28bf50 c0f01064 c0101d1c 00000006 00000006 00000000 c0f0067c
[ 3.096970] c0 bf60: 00000000 257676ae 00000000 00000000 c0a70598 00000000 00000000 00000000
[ 3.096981] c0 bf80: 00000000 00000000 ee28bfac ee28bf98 c0a705b0 c0f00e94 ee28a000 00000000
[ 3.096992] c0 bfa0: 00000000 ee28bfb0 c01086f4 c0a705a4 00000000 00000000 00000000 00000000
[ 3.097002] c0 bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 3.097012] c0 bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[ 3.097034] c0 [<c01751e4>] (__wake_up_common) from [<c01753c4>] (__wake_up_locked+0x28/0x30)
[ 3.097047] c0 [<c01753c4>] (__wake_up_locked) from [<c0175f3c>] (complete+0x48/0x58)
[ 3.097064] c0 [<c0175f3c>] (complete) from [<c063b998>] (send_handle+0x3c/0x48)
[ 3.097082] c0 [<c063b998>] (send_handle) from [<c0190044>] (__handle_irq_event_percpu+0xf8/0x28c)
[ 3.097096] c0 [<c0190044>] (__handle_irq_event_percpu) from [<c0190210>] (handle_irq_event_percpu+0x38/0x8c)
[ 3.097108] c0 [<c0190210>] (handle_irq_event_percpu) from [<c01902ac>] (handle_irq_event+0x48/0x6c)
[ 3.097121] c0 [<c01902ac>] (handle_irq_event) from [<c01947f8>] (handle_edge_irq+0x148/0x174)
[ 3.097134] c0 [<c01947f8>] (handle_edge_irq) from [<c018f21c>] (generic_handle_irq+0x28/0x38)
[ 3.097148] c0 [<c018f21c>] (generic_handle_irq) from [<c04fcdf0>] (sprd_gpio_plus_irq_handler+0xc8/0x10c)
[ 3.097162] c0 [<c04fcdf0>] (sprd_gpio_plus_irq_handler) from [<c018f21c>] (generic_handle_irq+0x28/0x38)
[ 3.097173] c0 [<c018f21c>] (generic_handle_irq) from [<c018f7fc>] (__handle_domain_irq+0x98/0xc0)
[ 3.097187] c0 [<c018f7fc>] (__handle_domain_irq) from [<c0101574>] (gic_handle_irq+0x68/0xfc)
[ 3.097200] c0 [<c0101574>] (gic_handle_irq) from [<c010da30>] (__irq_svc+0x70/0xb0)
[ 3.097206] c0 Exception stack(0xee28bc00 to 0xee28bc48)
[ 3.097217] c0 bc00: ec0d2068 00000000 2dd81000 60000093 60000013 00000000 c1009208 00000001
[ 3.097230] c0 bc20: ec0d2000 ec0d2068 60000013 ee28bc64 ee28bc50 ee28bc50 c0a793b0 c0a793b4
[ 3.097236] c0 bc40: 60000013 ffffffff
[ 3.097251] c0 [<c010da30>] (__irq_svc) from [<c0a793b4>] (_raw_spin_unlock_irqrestore+0x4c/0x80)
[ 3.097265] c0 [<c0a793b4>] (_raw_spin_unlock_irqrestore) from [<c0198448>] (register_handler_proc+0xc4/0x114)
[ 3.097278] c0 [<c0198448>] (register_handler_proc) from [<c01925ec>] (__setup_irq+0x538/0x6c0)
[ 3.097292] c0 [<c01925ec>] (__setup_irq) from [<c0192904>] (request_threaded_irq+0x104/0x14c)
[ 3.097305] c0 [<c0192904>] (request_threaded_irq) from [<c063b778>] (cmt2300a_probe+0x1b8/0x39c)
[ 3.097319] c0 [<c063b778>] (cmt2300a_probe) from [<c05ee074>] (platform_drv_probe+0x60/0xb0)
[ 3.097335] c0 [<c05ee074>] (platform_drv_probe) from [<c05ebdc8>] (driver_probe_device+0x1d8/0x458)
[ 3.097350] c0 [<c05ebdc8>] (driver_probe_device) from [<c05ec0e4>] (__driver_attach+0x9c/0x100)
[ 3.097362] c0 [<c05ec0e4>] (__driver_attach) from [<c05eaa70>] (bus_for_each_dev+0xa4/0xd0)
[ 3.097376] c0 [<c05eaa70>] (bus_for_each_dev) from [<c05eb6cc>] (driver_attach+0x28/0x30)
[ 3.097389] c0 [<c05eb6cc>] (driver_attach) from [<c05eb06c>] (bus_add_driver+0xe8/0x240)
[ 3.097403] c0 [<c05eb06c>] (bus_add_driver) from [<c05ecf04>] (driver_register+0xac/0xf0)
[ 3.097416] c0 [<c05ecf04>] (driver_register) from [<c05edfb4>] (__platform_driver_register+0x40/0x54)
[ 3.097430] c0 [<c05edfb4>] (__platform_driver_register) from [<c0f38d30>] (cmt2300a_module_driver_init+0x20/0x28)
[ 3.097444] c0 [<c0f38d30>] (cmt2300a_module_driver_init) from [<c0101dd4>] (do_one_initcall+0xc4/0x184)
[ 3.097458] c0 [<c0101dd4>] (do_one_initcall) from [<c0f01064>] (kernel_init_freeable+0x1dc/0x2c0)
[ 3.097472] c0 [<c0f01064>] (kernel_init_freeable) from [<c0a705b0>] (kernel_init+0x18/0x130)
[ 3.097485] c0 [<c0a705b0>] (kernel_init) from [<c01086f4>] (ret_from_fork+0x14/0x20)
[ 3.097497] c0 Code: e243300c e2866004 e283200c e1560002 (1593500c)
[ 3.097511] c0 ---[ end trace c0b259d55b738a6e ]---
[ 3.102065] c1 [saudio] Error: sblock_receive dst 5, channel 13 result is -5
[ 3.111313] c0 Kernel panic - not syncing: Fatal exception in interrupt
[ 3.113004] c2 [saudio] Error: initialization failed
[ 3.115365] c0 sprd-sysdump: vaddr is (ptrval), paddr is (ptrval).
[ 3.118160] c2 [saudio] saudio_ctrl_thread,saudio: waiting for modem boot handshake,dst 5,channel 14
[ 3.120815] c0 sprd-sysdump: (sprd_debug_save_context) context saved(CPU:0)
[ 3.120895] c5 sprd-sysdump: (sprd_debug_save_context) context saved(CPU:5)
[ 3.120898] c4 sprd-sysdump: (sprd_debug_save_context) context saved(CPU:4)
[ 3.120903] c1 sprd-sysdump: (sprd_debug_save_context) context saved(CPU:1)
[ 3.120909] c3 sprd-sysdump: (sprd_debug_save_context) context saved(CPU:3)
[ 3.120912] c6 sprd-sysdump: (sprd_debug_save_context) context saved(CPU:6)
[ 3.120916] c7 sprd-sysdump: (sprd_debug_save_context) context saved(CPU:7)
[ 3.120965] c4 CPU4: stopping
[ 3.120974] c4 CPU: 4 PID: 0 Comm: swapper/4 Tainted: G D 4.14.133 #276
[ 3.120977] c4 Hardware name: Generic DT based system
[ 3.120998] c4 [<c0111d74>] (unwind_backtrace) from [<c010cda0>] (show_stack+0x20/0x24)
[ 3.121008] c4 [<c010cda0>] (show_stack) from [<c0a5bbbc>] (dump_stack+0xa4/0xd8)
[ 3.121019] c4 [<c0a5bbbc>] (dump_stack) from [<c010fc70>] (handle_IPI+0x1d4/0x3e0)
[ 3.121027] c4 [<c010fc70>] (handle_IPI) from [<c01015dc>] (gic_handle_irq+0xd0/0xfc)
[ 3.121035] c4 [<c01015dc>] (gic_handle_irq) from [<c010da30>] (__irq_svc+0x70/0xb0)
[ 3.121039] c4 Exception stack(0xee2c3f28 to 0xee2c3f70)
[ 3.121045] c4 3f20: 00000000 00000000 2ddc9000 60000093 00000000 ee2c2000
[ 3.121052] c4 3f40: c1009208 ee2c3f98 c1009230 00000000 00000000 ee2c3f84 ee2c3f78 ee2c3f78
[ 3.121057] c4 3f60: c0109058 c010905c 60000013 ffffffff
[ 3.121065] c4 [<c010da30>] (__irq_svc) from [<c010905c>] (arch_cpu_idle+0x40/0x4c)
[ 3.121074] c4 [<c010905c>] (arch_cpu_idle) from [<c0a78d68>] (default_idle_call+0x40/0x48)
[ 3.121084] c4 [<c0a78d68>] (default_idle_call) from [<c01762d0>] (do_idle+0x110/0x29c)
[ 3.121092] c4 [<c01762d0>] (do_idle) from [<c0176728>] (cpu_startup_entry+0x28/0x2c)
[ 3.121099] c4 [<c0176728>] (cpu_startup_entry) from [<c010f814>] (secondary_start_kernel+0x150/0x198)
[ 3.121108] c4 [<c010f814>] (secondary_start_kernel) from [<80101aac>] (0x80101aac)
[ 3.121117] c1 CPU1: stopping
[ 3.121127] c1 CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 4.14.133 #276
[ 3.121131] c1 Hardware name: Generic DT based system
[ 3.121150] c1 [<c0111d74>] (unwind_backtrace) from [<c010cda0>] (show_stack+0x20/0x24)
[ 3.121163] c1 [<c010cda0>] (show_stack) from [<c0a5bbbc>] (dump_stack+0xa4/0xd8)
[ 3.121176] c1 [<c0a5bbbc>] (dump_stack) from [<c010fc70>] (handle_IPI+0x1d4/0x3e0)
[ 3.121189] c1 [<c010fc70>] (handle_IPI) from [<c01015dc>] (gic_handle_irq+0xd0/0xfc)
[ 3.121200] c1 [<c01015dc>] (gic_handle_irq) from [<c010da30>] (__irq_svc+0x70/0xb0)
[ 3.121205] c1 Exception stack(0xee2bdf28 to 0xee2bdf70)
[ 3.121215] c1 df20: 00000000 00000000 2dd93000 60000093 00000000 ee2bc000
[ 3.121228] c1 df40: c1009208 ee2bdf98 c1009230 00000000 00000000 ee2bdf84 ee2bdf78 ee2bdf78
[ 3.121236] c1 df60: c0109058 c010905c 60000013 ffffffff
[ 3.121249] c1 [<c010da30>] (__irq_svc) from [<c010905c>] (arch_cpu_idle+0x40/0x4c)
[ 3.121262] c1 [<c010905c>] (arch_cpu_idle) from [<c0a78d68>] (default_idle_call+0x40/0x48)
[ 3.121274] c1 [<c0a78d68>] (default_idle_call) from [<c01762d0>] (do_idle+0x110/0x29c)
[ 3.121286] c1 [<c01762d0>] (do_idle) from [<c0176728>] (cpu_startup_entry+0x28/0x2c)
[ 3.121299] c1 [<c0176728>] (cpu_startup_entry) from [<c010f814>] (secondary_start_kernel+0x150/0x198)
[ 3.121310] c1 [<c010f814>] (secondary_start_kernel) from [<80101aac>] (0x80101aac)
[ 3.121316] c7 CPU7: stopping
[ 3.121322] c7 CPU: 7 PID: 0 Comm: swapper/7 Tainted: G D 4.14.133 #276
[ 3.121324] c7 Hardware name: Generic DT based system
[ 3.121335] c7 [<c0111d74>] (unwind_backtrace) from [<c010cda0>] (show_stack+0x20/0x24)
[ 3.121342] c7 [<c010cda0>] (show_stack) from [<c0a5bbbc>] (dump_stack+0xa4/0xd8)
[ 3.121349] c7 [<c0a5bbbc>] (dump_stack) from [<c010fc70>] (handle_IPI+0x1d4/0x3e0)
[ 3.121357] c7 [<c010fc70>] (handle_IPI) from [<c01015dc>] (gic_handle_irq+0xd0/0xfc)
[ 3.121363] c7 [<c01015dc>] (gic_handle_irq) from [<c010da30>] (__irq_svc+0x70/0xb0)
[ 3.121366] c7 Exception stack(0xee2d1f28 to 0xee2d1f70)
[ 3.121372] c7 1f20: 00000000 00000000 2ddff000 60000093 00000000 ee2d0000
[ 3.121379] c7 1f40: c1009208 ee2d1f98 c1009230 00000000 00000000 ee2d1f84 ee2d1f78 ee2d1f78
[ 3.121383] c7 1f60: c0109058 c010905c 60000013 ffffffff
[ 3.121390] c7 [<c010da30>] (__irq_svc) from [<c010905c>] (arch_cpu_idle+0x40/0x4c)
[ 3.121397] c7 [<c010905c>] (arch_cpu_idle) from [<c0a78d68>] (default_idle_call+0x40/0x48)
[ 3.121403] c7 [<c0a78d68>] (default_idle_call) from [<c01762d0>] (do_idle+0x110/0x29c)
[ 3.121411] c7 [<c01762d0>] (do_idle) from [<c0176728>] (cpu_startup_entry+0x28/0x2c)
[ 3.121418] c7 [<c0176728>] (cpu_startup_entry) from [<c010f814>] (secondary_start_kernel+0x150/0x198)
[ 3.121424] c7 [<c010f814>] (secondary_start_kernel) from [<80101aac>] (0x80101aac)
[ 3.121429] c6 CPU6: stopping
[ 3.121435] c6 CPU: 6 PID: 0 Comm: swapper/6 Tainted: G D 4.14.133 #276
[ 3.121437] c6 Hardware name: Generic DT based system
[ 3.121447] c6 [<c0111d74>] (unwind_backtrace) from [<c010cda0>] (show_stack+0x20/0x24)
[ 3.121454] c6 [<c010cda0>] (show_stack) from [<c0a5bbbc>] (dump_stack+0xa4/0xd8)
[ 3.121461] c6 [<c0a5bbbc>] (dump_stack) from [<c010fc70>] (handle_IPI+0x1d4/0x3e0)
[ 3.121468] c6 [<c010fc70>] (handle_IPI) from [<c01015dc>] (gic_handle_irq+0xd0/0xfc)
[ 3.121475] c6 [<c01015dc>] (gic_handle_irq) from [<c010da30>] (__irq_svc+0x70/0xb0)
[ 3.121478] c6 Exception stack(0xee2c7f28 to 0xee2c7f70)
[ 3.121483] c6 7f20: 00000000 00000000 2dded000 60000093 00000000 ee2c6000
[ 3.121490] c6 7f40: c1009208 ee2c7f98 c1009230 00000000 00000000 ee2c7f84 ee2c7f78 ee2c7f78
[ 3.121495] c6 7f60: c0109058 c010905c 60000013 ffffffff
[ 3.121501] c6 [<c010da30>] (__irq_svc) from [<c010905c>] (arch_cpu_idle+0x40/0x4c)
[ 3.121508] c6 [<c010905c>] (arch_cpu_idle) from [<c0a78d68>] (default_idle_call+0x40/0x48)
[ 3.121515] c6 [<c0a78d68>] (default_idle_call) from [<c01762d0>] (do_idle+0x110/0x29c)
[ 3.121522] c6 [<c01762d0>] (do_idle) from [<c0176728>] (cpu_startup_entry+0x28/0x2c)
[ 3.121529] c6 [<c0176728>] (cpu_startup_entry) from [<c010f814>] (secondary_start_kernel+0x150/0x198)
[ 3.121536] c6 [<c010f814>] (secondary_start_kernel) from [<80101aac>] (0x80101aac)
[ 3.121542] c3 CPU3: stopping
[ 3.121551] c3 CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 4.14.133 #276
[ 3.121555] c3 Hardware name: Generic DT based system
[ 3.121572] c3 [<c0111d74>] (unwind_backtrace) from [<c010cda0>] (show_stack+0x20/0x24)
[ 3.121584] c3 [<c010cda0>] (show_stack) from [<c0a5bbbc>] (dump_stack+0xa4/0xd8)
[ 3.121598] c3 [<c0a5bbbc>] (dump_stack) from [<c010fc70>] (handle_IPI+0x1d4/0x3e0)
[ 3.121609] c3 [<c010fc70>] (handle_IPI) from [<c01015dc>] (gic_handle_irq+0xd0/0xfc)
[ 3.121620] c3 [<c01015dc>] (gic_handle_irq) from [<c010da30>] (__irq_svc+0x70/0xb0)
[ 3.121625] c3 Exception stack(0xee2c1f28 to 0xee2c1f70)
[ 3.121635] c3 1f20: 00000000 00000000 2ddb7000 60000093 00000000 ee2c0000
[ 3.121648] c3 1f40: c1009208 ee2c1f98 c1009230 00000000 00000000 ee2c1f84 ee2c1f78 ee2c1f78
[ 3.121656] c3 1f60: c0109058 c010905c 60000013 ffffffff
[ 3.121668] c3 [<c010da30>] (__irq_svc) from [<c010905c>] (arch_cpu_idle+0x40/0x4c)
[ 3.121680] c3 [<c010905c>] (arch_cpu_idle) from [<c0a78d68>] (default_idle_call+0x40/0x48)
[ 3.121691] c3 [<c0a78d68>] (default_idle_call) from [<c01762d0>] (do_idle+0x110/0x29c)
[ 3.121704] c3 [<c01762d0>] (do_idle) from [<c0176728>] (cpu_startup_entry+0x28/0x2c)
[ 3.121716] c3 [<c0176728>] (cpu_startup_entry) from [<c010f814>] (secondary_start_kernel+0x150/0x198)
[ 3.121727] c3 [<c010f814>] (secondary_start_kernel) from [<80101aac>] (0x80101aac)
[ 3.123762] c2 sprd-sysdump: (sprd_debug_save_context) context saved(CPU:2)
[ 3.132093] c5 CPU5: stopping
[ 4.325972] c0 SMP: failed to stop secondary CPUs
[ 4.333133] c5 CPU: 5 PID: 0 Comm: swapper/5 Tainted: G D 4.14.133 #276
[ 4.677720] c5 Hardware name: Generic DT based system
[ 4.682751] c5 [<c0111d74>] (unwind_backtrace) from [<c010cda0>] (show_stack+0x20/0x24)
[ 4.690706] c5 [<c010cda0>] (show_stack) from [<c0a5bbbc>] (dump_stack+0xa4/0xd8)
[ 4.698149] c5 [<c0a5bbbc>] (dump_stack) from [<c010fc70>] (handle_IPI+0x1d4/0x3e0)
[ 4.705764] c5 [<c010fc70>] (handle_IPI) from [<c01015dc>] (gic_handle_irq+0xd0/0xfc)
[ 4.713551] c5 [<c01015dc>] (gic_handle_irq) from [<c010da30>] (__irq_svc+0x70/0xb0)
[ 4.721249] c5 Exception stack(0xee2c5f28 to 0xee2c5f70)
[ 4.726531] c5 5f20: 00000000 00000000 2dddb000 60000093 00000000 ee2c4000
[ 4.734927] c5 5f40: c1009208 ee2c5f98 c1009230 00000000 00000000 ee2c5f84 ee2c5f78 ee2c5f78
[ 4.743318] c5 5f60: c0109058 c010905c 60000013 ffffffff
[ 4.748599] c5 [<c010da30>] (__irq_svc) from [<c010905c>] (arch_cpu_idle+0x40/0x4c)
[ 4.756216] c5 [<c010905c>] (arch_cpu_idle) from [<c0a78d68>] (default_idle_call+0x40/0x48)
[ 4.764523] c5 [<c0a78d68>] (default_idle_call) from [<c01762d0>] (do_idle+0x110/0x29c)
[ 4.772485] c5 [<c01762d0>] (do_idle) from [<c0176728>] (cpu_startup_entry+0x28/0x2c)
[ 4.780273] c5 [<c0176728>] (cpu_startup_entry) from [<c010f814>] (secondary_start_kernel+0x150/0x198)
[ 4.789532] c5 [<c010f814>] (secondary_start_kernel) from [<80101aac>] (0x80101aac)
[ 4.797147] c2 CPU2: stopping
[ 4.800093] c2 CPU: 2 PID: 156 Comm: saudio-5-14 Tainted: G D 4.14.133 #276
[ 4.808136] c2 Hardware name: Generic DT based system
[ 4.813168] c2 [<c0111d74>] (unwind_backtrace) from [<c010cda0>] (show_stack+0x20/0x24)
[ 4.821125] c2 [<c010cda0>] (show_stack) from [<c0a5bbbc>] (dump_stack+0xa4/0xd8)
[ 4.828569] c2 [<c0a5bbbc>] (dump_stack) from [<c010fc70>] (handle_IPI+0x1d4/0x3e0)
[ 4.836182] c2 [<c010fc70>] (handle_IPI) from [<c01015dc>] (gic_handle_irq+0xd0/0xfc)
[ 4.843971] c2 [<c01015dc>] (gic_handle_irq) from [<c010da30>] (__irq_svc+0x70/0xb0)
[ 4.851667] c2 Exception stack(0xec0b3dd0 to 0xec0b3e18)
[ 4.856948] c2 3dc0: 20000093 00000000 2dda5000 20000013
[ 4.865345] c2 3de0: ec0b2000 00000000 c13510f0 00000000 00000000 00000021 c1157bc4 ec0b3e7c
[ 4.873738] c2 3e00: ec0b3e20 ec0b3e20 c018d8b4 c018d8bc 60000013 ffffffff
[ 4.880577] c2 [<c010da30>] (__irq_svc) from [<c018d8bc>] (console_unlock+0x518/0x574)
[ 4.888452] c2 [<c018d8bc>] (console_unlock) from [<c018dac4>] (vprintk_emit+0x1ac/0x200)
[ 4.896586] c2 [<c018dac4>] (vprintk_emit) from [<c018dcf0>] (vprintk_default+0x30/0x38)
[ 4.904635] c2 [<c018dcf0>] (vprintk_default) from [<c018f198>] (vprintk_func+0x174/0x1a8)
[ 4.912856] c2 [<c018f198>] (vprintk_func) from [<c018e970>] (printk+0x38/0x58)
[ 4.920129] c2 [<c018e970>] (printk) from [<c063a0fc>] (saudio_ctrl_thread+0x288/0x7d8)
[ 4.928091] c2 [<c063a0fc>] (saudio_ctrl_thread) from [<c0147b74>] (kthread+0x148/0x164)
[ 4.936137] c2 [<c0147b74>] (kthread) from [<c01086f4>] (ret_from_fork+0x14/0x20)
[ 5.341688] c0 sprd-sysdump:
[ 5.344560] c0 sprd-sysdump: *****************************************************
[ 5.352090] c0 sprd-sysdump: * *
[ 5.359618] c0 sprd-sysdump: * Sysdump enter, preparing debug info to dump ... *
[ 5.367147] c0 sprd-sysdump: * *
[ 5.374675] c0 sprd-sysdump: *****************************************************
[ 5.382204] c0 sprd-sysdump:
[ 5.385152] c0 sprd-sysdump: reason: Fatal exception in interrupt, sprd_sysdump_info->crash_key: 0
[ 5.394069] c0 sprd-sysdump: R0: 00000033
[ 5.398042] c0 sprd-sysdump: addr: ffffffb3
[ 5.402195] c0 sprd-sysdump: reg value invalid !!!
[ 5.406955] c0 sprd-sysdump: reg[0] paddr: 0
[ 5.411196] c0 sprd-sysdump: R1: 00010003
[ 5.415177] c0 sprd-sysdump: addr: 0000ff83
[ 5.419330] c0 sprd-sysdump: reg value invalid !!!
[ 5.424090] c0 sprd-sysdump: reg[1] paddr: 0
[ 5.428331] c0 sprd-sysdump: R2: 00000048
[ 5.432311] c0 sprd-sysdump: addr: ffffffc8
[ 5.436464] c0 sprd-sysdump: reg value invalid !!!
[ 5.441224] c0 sprd-sysdump: reg[2] paddr: 0
[ 5.445466] c0 sprd-sysdump: R3: c106a334
[ 5.449446] c0 sprd-sysdump: addr: c106a2b4
[ 5.453600] c0 sprd-sysdump: reg[3] paddr: 8106a2b4
[ 5.458446] c0 sprd-sysdump: R4: c106a43c
[ 5.462426] c0 sprd-sysdump: addr: c106a3bc
[ 5.466581] c0 sprd-sysdump: reg[4] paddr: 8106a3bc
[ 5.471427] c0 sprd-sysdump: R5: c114a330
[ 5.475407] c0 sprd-sysdump: addr: c114a2b0
[ 5.479561] c0 sprd-sysdump: reg[5] paddr: 8114a2b0
[ 5.484408] c0 sprd-sysdump: R6: c137557c
[ 5.488387] c0 sprd-sysdump: addr: c13754fc
[ 5.492542] c0 sprd-sysdump: reg[6] paddr: 813754fc
[ 5.497388] c0 sprd-sysdump: R7: 00000000
[ 5.501368] c0 sprd-sysdump: addr: ffffff80
[ 5.505522] c0 sprd-sysdump: reg value invalid !!!
[ 5.510282] c0 sprd-sysdump: reg[7] paddr: 0
[ 5.514523] c0 sprd-sysdump: R8: 00000000
[ 5.518503] c0 sprd-sysdump: addr: ffffff80
[ 5.522656] c0 sprd-sysdump: reg value invalid !!!
[ 5.527416] c0 sprd-sysdump: reg[8] paddr: 0
[ 5.531657] c0 sprd-sysdump: R9: c106a334
[ 5.535637] c0 sprd-sysdump: addr: c106a2b4
[ 5.539792] c0 sprd-sysdump: reg[9] paddr: 8106a2b4
[ 5.544638] c0 sprd-sysdump: R10: 00000005
[ 5.548704] c0 sprd-sysdump: addr: ffffff85
[ 5.552857] c0 sprd-sysdump: reg value invalid !!!
[ 5.557619] c0 sprd-sysdump: reg[10] paddr: 0
[ 5.561945] c0 sprd-sysdump: R11: ee28b834
[ 5.566013] c0 sprd-sysdump: addr: ee28b7b4
[ 5.570167] c0 sprd-sysdump: reg[11] paddr: ae28b7b4
[ 5.575100] c0 sprd-sysdump: R12: ee28b758
[ 5.579167] c0 sprd-sysdump: addr: ee28b6d8
[ 5.583321] c0 sprd-sysdump: reg[12] paddr: ae28b6d8
[ 5.588254] c0 sprd-sysdump: R13: ee28b800
[ 5.592320] c0 sprd-sysdump: addr: ee28b780
[ 5.596475] c0 sprd-sysdump: reg[13] paddr: ae28b780
[ 5.601407] c0 sprd-sysdump: R14: c018dacc
[ 5.605474] c0 sprd-sysdump: addr: c018da4c
[ 5.609629] c0 sprd-sysdump: reg[14] paddr: 8018da4c
[ 5.614561] c0 sprd-sysdump: R15: c053bb08
[ 5.618628] c0 sprd-sysdump: addr: c053ba88
[ 5.622783] c0 sprd-sysdump: reg[15] paddr: 8053ba88
[ 5.627715] c0 sprd-sysdump: size : 2560
[ 5.631611] c0 sprd-sysdump: kernel_magic: K2.0
[ 5.631611] c0
[ 5.631615] c0 sprd-sysdump: --- regs_info ---
[ 5.631615] c0
[ 5.637926] c0 sprd-sysdump: arch: 0
[ 5.637926] c0
[ 5.645023] c0 sprd-sysdump: num: 16
[ 5.645023] c0
[ 5.651512] c0 sprd-sysdump: paddr: 0
[ 5.651512] c0
[ 5.658090] c0 sprd-sysdump: size: 72
[ 5.658090] c0
[ 5.664234] c0 sprd-sysdump: --- regs_memory_info ---
[ 5.664234] c0
[ 5.670466] c0 sprd-sysdump: reg[0] paddr: 0
[ 5.670466] c0
[ 5.678254] c0 sprd-sysdump: reg[1] paddr: 0
[ 5.678254] c0
[ 5.685090] c0 sprd-sysdump: reg[2] paddr: 0
[ 5.685090] c0
[ 5.691926] c0 sprd-sysdump: reg[3] paddr: 8106a2b4
[ 5.691926] c0
[ 5.698763] c0 sprd-sysdump: reg[4] paddr: 8106a3bc
[ 5.698763] c0
[ 5.706206] c0 sprd-sysdump: reg[5] paddr: 8114a2b0
[ 5.706206] c0
[ 5.713648] c0 sprd-sysdump: reg[6] paddr: 813754fc
[ 5.713648] c0
[ 5.721089] c0 sprd-sysdump: reg[7] paddr: 0
[ 5.721089] c0
[ 5.728532] c0 sprd-sysdump: reg[8] paddr: 0
[ 5.728532] c0
[ 5.735369] c0 sprd-sysdump: reg[9] paddr: 8106a2b4
[ 5.735369] c0
[ 5.742205] c0 sprd-sysdump: reg[10] paddr: 0
[ 5.742205] c0
[ 5.749648] c0 sprd-sysdump: reg[11] paddr: ae28b7b4
[ 5.749648] c0
[ 5.756571] c0 sprd-sysdump: reg[12] paddr: ae28b6d8
[ 5.756571] c0
[ 5.764100] c0 sprd-sysdump: reg[13] paddr: ae28b780
[ 5.764100] c0
[ 5.771629] c0 sprd-sysdump: reg[14] paddr: 8018da4c
[ 5.771629] c0
[ 5.779158] c0 sprd-sysdump: reg[15] paddr: 8053ba88
[ 5.779158] c0
[ 5.786686] c0 sprd-sysdump: per_reg_memory_size: 256
[ 5.786686] c0
[ 5.794214] c0 sprd-sysdump: valid_reg_num: 10
[ 5.794214] c0
[ 5.801311] c0 sprd-sysdump: reg_memory_all_size: 2560
[ 5.801311] c0
[ 5.808320] c0 sprd-sysdump: --- section_info_total ---
[ 5.808320] c0
[ 5.815504] c0 sprd-sysdump: Here are 0 sections, Total size : 0
[ 5.829435] c0 sprd-sysdump: total_num: 0
[ 5.829435] c0
[ 5.829439] c0 sprd-sysdump: total_size 0
[ 5.829439] c0
[ 5.835840] c0 sprd-sysdump: minidump_data_size: a48
[ 5.835840] c0
[ 5.842259] c0 sprd-sysdump: no regs or not a bugon,do nothing
[ 5.855578] c0 sprd-sysdump: kernel_magic: K2.0
[ 5.855578] c0
[ 5.855583] c0 sprd-sysdump: exception_serialno:
[ 5.855583] c0
[ 5.862874] c0 sprd-sysdump: exception_kernel_version: Linux version 4.14.133 (a1001@ubuntu01) (gcc version 4.9.x 20150123 (prerelease) (GCC)) #276 SMP PREEMPT Fri Sep 18 18:08:26 CST 2020
[ 5.862874] c0
[ 5.862874] c0
[ 5.869450] c0 sprd-sysdump: exception_reboot_reason:
[ 5.869450] c0
[ 5.889699] c0 sprd-sysdump: exception_panic_reason: Fatal exception in interrupt
[ 5.889699] c0
[ 5.896710] c0 sprd-sysdump: exception_time: 1970-01-01:00:00:05
[ 5.896710] c0
[ 5.906142] c0 sprd-sysdump: exception_file_info: not-bugon
[ 5.906142] c0
[ 5.914796] c0 sprd-sysdump: exception_task_id: 1
[ 5.914796] c0
[ 5.922584] c0 sprd-sysdump: exception_task_family: [swapper/0, 1]
[ 5.922584] c0
[ 5.929681] c0 sprd-sysdump: exception_pc_symbol: [<(ptrval)>] sysdump_enter+0xe4/0x560
[ 5.929681] c0
[ 5.938089] c0 sprd-sysdump: exception_stack_info: [<(ptrval)>] get_exception_stack_info+0xf8/0x204
[ 5.938089] c0 [<(ptrval)>] prepare_exception_info.constprop.4+0x11c/0x16c
[ 5.938089] c0 [<(ptrval)>] sysdump_enter+0x3d8/0x560
[ 5.938089] c0 [<(ptrval)>] panic+0xfc/0x268
[ 5.938089] c0 [<(ptrval)>] die+0x2dc/0x324
[ 5.938089] c0 [<(ptrval)>] __do_kernel_fault.part.0+0x64/0x84
[ 5.938089] c0 [<(ptrval)>] do_page_fault+0x310/0x320
[ 5.938089] c0 [<(ptrval)>] do_translation_fault+0x2c/0xbc
[ 5.938089] c0 [<(ptrval)>] do_DataAbort+0x50/0xe8
[ 5.938089] c0 [<(ptrval)>] __dabt_svc+0x5c/0xa0
[ 5.938089] c0 [<(ptrval)>] __wake_up_common+0x9c/0x16c
[ 5.938089] c0 [<(ptrval)>] __wake_up_common+0x9c/0x16c
[ 5.938089] c0 [<(ptrval)>] __wake_up_locked+0x28/0x30
[ 5.938089] c0 [<(ptrval)>] complete+0x48/0x58
[ 5.938089] c0 [<(ptrval)>] send_handle+0x3c/0x48
[ 6.032488] c0 sprd-sysdump:
[ 6.035430] c0 sprd-sysdump: *****************************************************
[ 6.042959] c0 sprd-sysdump: * *
[ 6.050488] c0 sprd-sysdump: * Try to reboot system ... *
[ 6.058016] c0 sprd-sysdump: * *
[ 6.065545] c0 sprd-sysdump: *****************************************************
[ 6.073074] c0 sprd-sysdump:
[ 8.076409] c0 Reboot failed -- System halted
关键log
[ 3.097034] c0 [<c01751e4>] (__wake_up_common) from [<c01753c4>] (__wake_up_locked+0x28/0x30)
[ 3.097047] c0 [<c01753c4>] (__wake_up_locked) from [<c0175f3c>] (complete+0x48/0x58)
[ 3.097064] c0 [<c0175f3c>] (complete) from [<c063b998>] (send_handle+0x3c/0x48)
[ 3.097082] c0 [<c063b998>] (send_handle) from [<c0190044>] (__handle_irq_event_percpu+0xf8/0x28c)
[ 3.097096] c0 [<c0190044>] (__handle_irq_event_percpu) from [<c0190210>] (handle_irq_event_percpu+0x38/0x8c)
[ 3.097108] c0 [<c0190210>] (handle_irq_event_percpu) from [<c01902ac>] (handle_irq_event+0x48/0x6c)
[ 3.097121] c0 [<c01902ac>] (handle_irq_event) from [<c01947f8>] (handle_edge_irq+0x148/0x174)
[ 3.097134] c0 [<c01947f8>] (handle_edge_irq) from [<c018f21c>] (generic_handle_irq+0x28/0x38)
[ 3.097148] c0 [<c018f21c>] (generic_handle_irq) from [<c04fcdf0>] (sprd_gpio_plus_irq_handler+0xc8/0x10c)
[ 3.097162] c0 [<c04fcdf0>] (sprd_gpio_plus_irq_handler) from [<c018f21c>] (generic_handle_irq+0x28/0x38)
[ 3.097173] c0 [<c018f21c>] (generic_handle_irq) from [<c018f7fc>] (__handle_domain_irq+0x98/0xc0)
[ 3.097187] c0 [<c018f7fc>] (__handle_domain_irq) from [<c0101574>] (gic_handle_irq+0x68/0xfc)
[ 3.097200] c0 [<c0101574>] (gic_handle_irq) from [<c010da30>] (__irq_svc+0x70/0xb0)
[ 3.097206] c0 Exception stack(0xee28bc00 to 0xee28bc48)
[ 3.097217] c0 bc00: ec0d2068 00000000 2dd81000 60000093 60000013 00000000 c1009208 00000001
[ 3.097230] c0 bc20: ec0d2000 ec0d2068 60000013 ee28bc64 ee28bc50 ee28bc50 c0a793b0 c0a793b4
[ 3.097236] c0 bc40: 60000013 ffffffff
[ 3.097251] c0 [<c010da30>] (__irq_svc) from [<c0a793b4>] (_raw_spin_unlock_irqrestore+0x4c/0x80)
[ 3.097265] c0 [<c0a793b4>] (_raw_spin_unlock_irqrestore) from [<c0198448>] (register_handler_proc+0xc4/0x114)
[ 3.097278] c0 [<c0198448>] (register_handler_proc) from [<c01925ec>] (__setup_irq+0x538/0x6c0)
[ 3.097292] c0 [<c01925ec>] (__setup_irq) from [<c0192904>] (request_threaded_irq+0x104/0x14c)
[ 3.097305] c0 [<c0192904>] (request_threaded_irq) from [<c063b778>] (cmt2300a_probe+0x1b8/0x39c)
[ 3.097319] c0 [<c063b778>] (cmt2300a_probe) from [<c05ee074>] (platform_drv_probe+0x60/0xb0)
[ 3.097335] c0 [<c05ee074>] (platform_drv_probe) from [<c05ebdc8>] (driver_probe_device+0x1d8/0x458)
[ 3.097350] c0 [<c05ebdc8>] (driver_probe_device) from [<c05ec0e4>] (__driver_attach+0x9c/0x100)
[ 3.097362] c0 [<c05ec0e4>] (__driver_attach) from [<c05eaa70>] (bus_for_each_dev+0xa4/0xd0)
[ 3.097376] c0 [<c05eaa70>] (bus_for_each_dev) from [<c05eb6cc>] (driver_attach+0x28/0x30)
[ 3.097389] c0 [<c05eb6cc>] (driver_attach) from [<c05eb06c>] (bus_add_driver+0xe8/0x240)
[ 3.097403] c0 [<c05eb06c>] (bus_add_driver) from [<c05ecf04>] (driver_register+0xac/0xf0)
[ 3.097416] c0 [<c05ecf04>] (driver_register) from [<c05edfb4>] (__platform_driver_register+0x40/0x54)
[ 3.097430] c0 [<c05edfb4>] (__platform_driver_register) from [<c0f38d30>] (cmt2300a_module_driver_init+0x20/0x28)
[ 3.097444] c0 [<c0f38d30>] (cmt2300a_module_driver_init) from [<c0101dd4>] (do_one_initcall+0xc4/0x184)
[ 3.097458] c0 [<c0101dd4>] (do_one_initcall) from [<c0f01064>] (kernel_init_freeable+0x1dc/0x2c0)
[ 3.097472] c0 [<c0f01064>] (kernel_init_freeable) from [<c0a705b0>] (kernel_init+0x18/0x130)
[ 3.097485] c0 [<c0a705b0>] (kernel_init) from [<c01086f4>] (ret_from_fork+0x14/0x20)
在申请中断时,刚好中断来了,调用了complete函数
出问题的代码如下
static irqreturn_t send_handle(int irq, void *dev_id)
{
complete(&tx_done_complete);
}
int xxx_probe(){
ret = request_irq(virq,send_handle,IRQF_TRIGGER_RISING,"cmt2300a_send_complete", NULL);
init_completion(&tx_done_complete);
}
初看没有什么问题,但由于这次回板,cmt2300a由于缺货,暂时没贴,导致引脚悬空(之前有贴芯片,引脚被芯片拉低),电平不稳定,刚好进入了中断,init_complete函数还没跑,就调用了complete函数。
解决方案也很简单,调整下函数执行顺序。
刚开始时,没有设置printk的等级为7(死机时会自动设置串口log等级为7),默认是1,只看到了如下log
5.938089] c0 [<(ptrval)>] prepare_exception_info.constprop.4+0x11c/0x16c
[ 5.938089] c0 [<(ptrval)>] sysdump_enter+0x3d8/0x560
[ 5.938089] c0 [<(ptrval)>] panic+0xfc/0x268
[ 5.938089] c0 [<(ptrval)>] die+0x2dc/0x324
[ 5.938089] c0 [<(ptrval)>] __do_kernel_fault.part.0+0x64/0x84
[ 5.938089] c0 [<(ptrval)>] do_page_fault+0x310/0x320
[ 5.938089] c0 [<(ptrval)>] do_translation_fault+0x2c/0xbc
[ 5.938089] c0 [<(ptrval)>] do_DataAbort+0x50/0xe8
[ 5.938089] c0 [<(ptrval)>] __dabt_svc+0x5c/0xa0
[ 5.938089] c0 [<(ptrval)>] __wake_up_common+0x9c/0x16c
[ 5.938089] c0 [<(ptrval)>] __wake_up_common+0x9c/0x16c
[ 5.938089] c0 [<(ptrval)>] __wake_up_locked+0x28/0x30
[ 5.938089] c0 [<(ptrval)>] complete+0x48/0x58
[ 5.938089] c0 [<(ptrval)>] send_handle+0x3c/0x48
猜测wait_for_completion还没调用,就调用complete函数会有bug,于是把相关的代码都look了一遍,分享下
https://blog.youkuaiyun.com/mike8825/article/details/108678777