2015-04-17 09:24:47

by Ulrich Obergfell

[permalink] [raw]
Subject: [RFC PATCH 0/1] watchdog: fix watchdog_nmi_enable_all()

It appears that this issue has been introduced during the recent merges.
It is related to the patch series from https://lkml.org/lkml/2015/2/5/624 and
http://lkml.kernel.org/r/[email protected]

watchdog_nmi_enable_all() needs to check a bit in watchdog_enabled to determine
whether the NMI watchdog is running, not the content of watchdog_user_enabled.

The attached [RFC PATCH 1/1] has undergone minimal testing only.

Ulrich Obergfell (1):
watchdog: fix watchdog_nmi_enable_all()

kernel/watchdog.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--
1.7.11.7


2015-04-17 09:24:58

by Ulrich Obergfell

[permalink] [raw]
Subject: [RFC PATCH 1/1] watchdog: fix watchdog_nmi_enable_all()

The 'watchdog_user_enabled' variable is only used as an 'interface'
to the /proc/sys/kernel/watchdog parameter. The actual state of the
watchdog is tracked by bits in the 'watchdog_enabled' variable. So,
watchdog_nmi_enable_all() should check the NMI_WATCHDOG_ENABLED bit
in 'watchdog_enabled'.

Signed-off-by: Ulrich Obergfell <[email protected]>
---
kernel/watchdog.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index 2316f50..cba2110 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -608,7 +608,7 @@ void watchdog_nmi_enable_all(void)
{
int cpu;

- if (!watchdog_user_enabled)
+ if (!(watchdog_enabled & NMI_WATCHDOG_ENABLED))
return;

get_online_cpus();
--
1.7.11.7

2015-04-17 15:40:09

by Don Zickus

[permalink] [raw]
Subject: Re: [RFC PATCH 1/1] watchdog: fix watchdog_nmi_enable_all()

On Fri, Apr 17, 2015 at 11:26:36AM +0200, Ulrich Obergfell wrote:
> The 'watchdog_user_enabled' variable is only used as an 'interface'
> to the /proc/sys/kernel/watchdog parameter. The actual state of the
> watchdog is tracked by bits in the 'watchdog_enabled' variable. So,
> watchdog_nmi_enable_all() should check the NMI_WATCHDOG_ENABLED bit
> in 'watchdog_enabled'.

Looks good. I'll respin this and send to Andrew on Monday.

Cheers,
Don

>
> Signed-off-by: Ulrich Obergfell <[email protected]>
> ---
> kernel/watchdog.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/watchdog.c b/kernel/watchdog.c
> index 2316f50..cba2110 100644
> --- a/kernel/watchdog.c
> +++ b/kernel/watchdog.c
> @@ -608,7 +608,7 @@ void watchdog_nmi_enable_all(void)
> {
> int cpu;
>
> - if (!watchdog_user_enabled)
> + if (!(watchdog_enabled & NMI_WATCHDOG_ENABLED))
> return;
>
> get_online_cpus();
> --
> 1.7.11.7
>