1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2c54b2bf1SAnton Blanchard #ifndef _ASM_NMI_H 3c54b2bf1SAnton Blanchard #define _ASM_NMI_H 4c54b2bf1SAnton Blanchard 570412c55SNicholas Piggin #ifdef CONFIG_PPC_WATCHDOG 62104180aSNicholas Piggin extern void arch_touch_nmi_watchdog(void); 73a96570fSNicholas Piggin long soft_nmi_interrupt(struct pt_regs *regs); 8*df95d308SDouglas Anderson void watchdog_hardlockup_set_timeout_pct(u64 pct); 92104180aSNicholas Piggin #else 102104180aSNicholas Piggin static inline void arch_touch_nmi_watchdog(void) {} 11*df95d308SDouglas Anderson static inline void watchdog_hardlockup_set_timeout_pct(u64 pct) {} 122104180aSNicholas Piggin #endif 132104180aSNicholas Piggin 1448015b63SMichael Ellerman #ifdef CONFIG_NMI_IPI 155cc05910SMichael Ellerman extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask, 165cc05910SMichael Ellerman bool exclude_self); 175cc05910SMichael Ellerman #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace 185cc05910SMichael Ellerman #endif 195cc05910SMichael Ellerman 20ccd47702SNicholas Piggin extern void hv_nmi_check_nonrecoverable(struct pt_regs *regs); 21ccd47702SNicholas Piggin 22c54b2bf1SAnton Blanchard #endif /* _ASM_NMI_H */ 23