调试模块的时候出现这个问题,看panic 系统调用堆栈,cpu执行到连接跟踪模块那里,难道是内核模块有问题?不可能,想起之前内核奔溃的教训,问题肯定是出在自己的模块上。又重新详细看日志,看到最后一行有个last unloaded ddos,这是我修改的模块,问题应该还是自己模块问题,反复定位,结果发现是卸载模块的时候没有释放定时器,导致定时器超时引起内核奔溃,以前也遇到过类似调试问题,在模块中启动定时器,卸载的时候忘记关闭了,导致内核奔溃。
[13449.459122] Internal error: Oops: 807 [#1] PREEMPT SMP ARM
[13449.459122] Modules linked in: ddos(O) pppoe ppp_async
nf_nat_pptp iptable_nat nf_nat_snmp_basic nf_defrag_ipv4
gpio_button_hotplug [last unloaded: ddos]