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 #include <asm/trace/exceptions.h> 14 #include <asm/trace/irq_vectors.h> 15 16 DEFINE_STATIC_KEY_FALSE(trace_pagefault_key); 17 18 int trace_pagefault_reg(void) 19 { 20 static_branch_inc(&trace_pagefault_key); 21 return 0; 22 } 23 24 void trace_pagefault_unreg(void) 25 { 26 static_branch_dec(&trace_pagefault_key); 27 } 28 29 #ifdef CONFIG_SMP 30 31 DEFINE_STATIC_KEY_FALSE(trace_resched_ipi_key); 32 33 int trace_resched_ipi_reg(void) 34 { 35 static_branch_inc(&trace_resched_ipi_key); 36 return 0; 37 } 38 39 void trace_resched_ipi_unreg(void) 40 { 41 static_branch_dec(&trace_resched_ipi_key); 42 } 43 44 #endif 45