Commit | Line | Data |
---|---|---|
2874c5fd | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
7d12e780 DH |
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) | |
7d12e780 DH |
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 | { | |
909ea964 | 21 | return __this_cpu_read(__irq_regs); |
7d12e780 DH |
22 | } |
23 | ||
24 | static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs) | |
25 | { | |
909ea964 | 26 | struct pt_regs *old_regs; |
7d12e780 | 27 | |
909ea964 CL |
28 | old_regs = __this_cpu_read(__irq_regs); |
29 | __this_cpu_write(__irq_regs, new_regs); | |
7d12e780 DH |
30 | return old_regs; |
31 | } | |
32 | ||
33 | #endif /* _ASM_GENERIC_IRQ_REGS_H */ |