Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2e0cff8 authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Linus Torvalds
Browse files

kernel/watchdog: introduce arch_touch_nmi_watchdog()

For architectures that define HAVE_NMI_WATCHDOG, instead of having them
provide the complete touch_nmi_watchdog() function, just have them
provide arch_touch_nmi_watchdog().

This gives the generic code more flexibility in implementing this
function, and arch implementations don't miss out on touching the
softlockup watchdog or other generic details.

Link: http://lkml.kernel.org/r/20170616065715.18390-3-npiggin@gmail.com


Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Reviewed-by: default avatarDon Zickus <dzickus@redhat.com>
Reviewed-by: default avatarBabu Moger <babu.moger@oracle.com>
Tested-by: Babu Moger <babu.moger@oracle.com>	[sparc]
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 24bb4461
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -9,4 +9,6 @@

#include <linux/nmi.h>

extern void arch_touch_nmi_watchdog(void);

#endif
+1 −1
Original line number Diff line number Diff line
@@ -190,7 +190,7 @@ static int __init init_nmi_wdt(void)
}
device_initcall(init_nmi_wdt);

void touch_nmi_watchdog(void)
void arch_touch_nmi_watchdog(void)
{
	atomic_set(&nmi_touched[smp_processor_id()], 1);
}
+2 −0
Original line number Diff line number Diff line
@@ -11,4 +11,6 @@
#ifndef _ASM_NMI_H
#define _ASM_NMI_H

extern void arch_touch_nmi_watchdog(void);

#endif /* _ASM_NMI_H */
+4 −4
Original line number Diff line number Diff line
@@ -50,9 +50,9 @@ watchdog_handler:
#   we can't inline it)
#
###############################################################################
	.globl	touch_nmi_watchdog
	.type	touch_nmi_watchdog,@function
touch_nmi_watchdog:
	.globl	arch_touch_nmi_watchdog
	.type	arch_touch_nmi_watchdog,@function
arch_touch_nmi_watchdog:
	clr	d0
	clr	d1
	mov	watchdog_alert_counter, a0
@@ -63,4 +63,4 @@ touch_nmi_watchdog:
	lne
	ret	[],0

	.size	touch_nmi_watchdog,.-touch_nmi_watchdog
	.size	arch_touch_nmi_watchdog,.-arch_touch_nmi_watchdog
+1 −1
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ static unsigned int watchdog;
static unsigned int watchdog_hz = 1;
unsigned int watchdog_alert_counter[NR_CPUS];

EXPORT_SYMBOL(touch_nmi_watchdog);
EXPORT_SYMBOL(arch_touch_nmi_watchdog);

/*
 * the best way to detect whether a CPU has a 'hard lockup' problem
Loading