• M
    watchdog: Fix broken nowatchdog logic · 4135038a
    Marcin Slusarz 提交于
    Passing nowatchdog to kernel disables 2 things: creation of
    watchdog threads AND initialization of percpu watchdog_hrtimer.
    As hrtimers are initialized only at boot it's not possible to
    enable watchdog later - for me all watchdog threads started to
    eat 100% of CPU time, but they could just crash.
    
    Additionally, even if these threads would start properly,
    watchdog_disable_all_cpus was guarded by no_watchdog check, so
    you couldn't disable watchdog.
    
    To fix this, remove no_watchdog variable and use already
    existing watchdog_enabled variable.
    Signed-off-by: NMarcin Slusarz <marcin.slusarz@gmail.com>
    [ removed another no_watchdog instance ]
    Signed-off-by: NDon Zickus <dzickus@redhat.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: <stable@kernel.org>
    LKML-Reference: <1296230433-6261-1-git-send-email-dzickus@redhat.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    4135038a
watchdog.c 13.3 KB