Messages in this thread Patch in this message | | | Date | Sun, 17 Apr 2011 12:11:17 +0800 | Subject | [PATCH] watchdog: disable nmi perf event in the error path of enabling watchdog | From | Hillf Danton <> |
| |
In corner cases where softlockup watchdog is not setup successfully, the relevant nmi perf event for hardlockup watchdog could be disabled, then the status of the underlying hardware remains unchanged.
Signed-off-by: Hillf Danton <dhillf@gmail.com> ---
--- a/kernel/watchdog.c 2011-03-30 03:09:48.000000000 +0800 +++ b/kernel/watchdog.c 2011-04-17 11:58:10.000000000 +0800 @@ -430,9 +430,12 @@ static int watchdog_enable(int cpu) p = kthread_create(watchdog, (void *)(unsigned long)cpu, "watchdog/%d", cpu); if (IS_ERR(p)) { printk(KERN_ERR "softlockup watchdog for %i failed\n", cpu); - if (!err) + if (!err) { /* if hardlockup hasn't already set this */ err = PTR_ERR(p); + /* and disable the perf event */ + watchdog_nmi_disable(cpu); + } goto out; } kthread_bind(p, cpu);
| |