1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* Fallback per-CPU frame pointer holder 3 * 4 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. 5 * Written by David Howells (dhowells@redhat.com) 6 */ 7 8 #ifndef _ASM_GENERIC_IRQ_REGS_H 9 #define _ASM_GENERIC_IRQ_REGS_H 10 11 #include <linux/percpu.h> 12 13 /* 14 * Per-cpu current frame pointer - the location of the last exception frame on 15 * the stack 16 */ 17 DECLARE_PER_CPU(struct pt_regs *, __irq_regs); 18 19 static inline struct pt_regs *get_irq_regs(void) 20 { 21 return __this_cpu_read(__irq_regs); 22 } 23 24 static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs) 25 { 26 struct pt_regs *old_regs; 27 28 old_regs = __this_cpu_read(__irq_regs); 29 __this_cpu_write(__irq_regs, new_regs); 30 return old_regs; 31 } 32 33 #endif /* _ASM_GENERIC_IRQ_REGS_H */ 34