diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-01-28 23:12:55 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-28 23:12:55 +0100 |
commit | 6a385db5ce7f1fd2c68ec511e44587b67dab8fca (patch) | |
tree | 9324c8ae6f7be54b9fdbd6b60f759292aa727b1f /arch/x86/include/asm/irq_regs.h | |
parent | 18e352e4a73465349711a9324767e1b2453383e2 (diff) | |
parent | 4369f1fb7cd4cf777312f43e1cb9aa5504fc4125 (diff) |
Merge branch 'core/percpu' into x86/core
Conflicts:
kernel/irq/handle.c
Diffstat (limited to 'arch/x86/include/asm/irq_regs.h')
-rw-r--r-- | arch/x86/include/asm/irq_regs.h | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/arch/x86/include/asm/irq_regs.h b/arch/x86/include/asm/irq_regs.h index 89c898ab298..77843225b7e 100644 --- a/arch/x86/include/asm/irq_regs.h +++ b/arch/x86/include/asm/irq_regs.h @@ -1,5 +1,31 @@ -#ifdef CONFIG_X86_32 -# include "irq_regs_32.h" -#else -# include "irq_regs_64.h" -#endif +/* + * Per-cpu current frame pointer - the location of the last exception frame on + * the stack, stored in the per-cpu area. + * + * Jeremy Fitzhardinge <jeremy@goop.org> + */ +#ifndef _ASM_X86_IRQ_REGS_H +#define _ASM_X86_IRQ_REGS_H + +#include <asm/percpu.h> + +#define ARCH_HAS_OWN_IRQ_REGS + +DECLARE_PER_CPU(struct pt_regs *, irq_regs); + +static inline struct pt_regs *get_irq_regs(void) +{ + return percpu_read(irq_regs); +} + +static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs) +{ + struct pt_regs *old_regs; + + old_regs = get_irq_regs(); + percpu_write(irq_regs, new_regs); + + return old_regs; +} + +#endif /* _ASM_X86_IRQ_REGS_32_H */ |