GNU Linux-libre 4.14.266-gnu1
[releases.git] / arch / x86 / kernel / tracepoint.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Code for supporting irq vector tracepoints.
4  *
5  * Copyright (C) 2013 Seiji Aguchi <seiji.aguchi@hds.com>
6  *
7  */
8 #include <linux/jump_label.h>
9 #include <linux/atomic.h>
10
11 #include <asm/hw_irq.h>
12 #include <asm/desc.h>
13
14 DEFINE_STATIC_KEY_FALSE(trace_pagefault_key);
15
16 int trace_pagefault_reg(void)
17 {
18         static_branch_inc(&trace_pagefault_key);
19         return 0;
20 }
21
22 void trace_pagefault_unreg(void)
23 {
24         static_branch_dec(&trace_pagefault_key);
25 }
26
27 #ifdef CONFIG_SMP
28
29 DEFINE_STATIC_KEY_FALSE(trace_resched_ipi_key);
30
31 int trace_resched_ipi_reg(void)
32 {
33         static_branch_inc(&trace_resched_ipi_key);
34         return 0;
35 }
36
37 void trace_resched_ipi_unreg(void)
38 {
39         static_branch_dec(&trace_resched_ipi_key);
40 }
41
42 #endif