-
Li RongQing authored
the softdog has static variables which are accessed if its timer is still running after the driver is unloaded. and lead to crash: $modprobe softdog $echo 1 >/dev/watchdog $modprobe -r softdog CPU 20 Unable to handle kernel paging request at virtual address Oops[#1]: CPU: 20 PID: 0 Comm: swapper/20 Not tainted 4.1.13-WR8.0.0.0_standard ... Modules linked in: [last unloaded: softdog] .... Call Trace: [<ffffffff801e142c>] cascade+0x34/0xb0 [<ffffffff801e1964>] run_timer_softirq+0x30c/0x368 [<ffffffff80181044>] __do_softirq+0x1ec/0x418 [<ffffffff801815d0>] irq_exit+0x90/0x98 [<ffffffff8010749c>] plat_irq_dispatch+0xa4/0x140 [<ffffffff80152740>] ret_from_irq+0x0/0x4 [<ffffffff801529e0>] __r4k_wait+0x20/0x40 [<ffffffff801c2278>] cpu_startup_entry+0x2a0/0x368 [<ffffffff8015fa64>] start_secondary+0x444/0x4d8 add the module ref when timer is running to avoid to unload the softdog module Signed-off-by: Li RongQing <roy.qing.li@gmail.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
5889f06b