blob: ccda97dc7f8b916fb62942057d3316e9abaa2b0b [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Steven Rostedt6a60dd12008-11-06 15:55:21 -05002#ifndef _LINUX_FTRACE_IRQ_H
3#define _LINUX_FTRACE_IRQ_H
4
5
Steven Rostedt78d904b2009-02-05 18:43:07 -05006#ifdef CONFIG_FTRACE_NMI_ENTER
Steven Rostedt (Red Hat)7b2c8622016-08-04 12:49:53 -04007extern void arch_ftrace_nmi_enter(void);
8extern void arch_ftrace_nmi_exit(void);
Steven Rostedt6a60dd12008-11-06 15:55:21 -05009#else
Steven Rostedt (Red Hat)7b2c8622016-08-04 12:49:53 -040010static inline void arch_ftrace_nmi_enter(void) { }
11static inline void arch_ftrace_nmi_exit(void) { }
Steven Rostedt6a60dd12008-11-06 15:55:21 -050012#endif
13
Steven Rostedt (Red Hat)7b2c8622016-08-04 12:49:53 -040014#ifdef CONFIG_HWLAT_TRACER
15extern bool trace_hwlat_callback_enabled;
16extern void trace_hwlat_callback(bool enter);
17#endif
18
19static inline void ftrace_nmi_enter(void)
20{
21#ifdef CONFIG_HWLAT_TRACER
22 if (trace_hwlat_callback_enabled)
23 trace_hwlat_callback(true);
24#endif
25 arch_ftrace_nmi_enter();
26}
27
28static inline void ftrace_nmi_exit(void)
29{
30 arch_ftrace_nmi_exit();
31#ifdef CONFIG_HWLAT_TRACER
32 if (trace_hwlat_callback_enabled)
33 trace_hwlat_callback(false);
34#endif
35}
36
Steven Rostedt6a60dd12008-11-06 15:55:21 -050037#endif /* _LINUX_FTRACE_IRQ_H */