diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2006-12-06 20:14:03 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-06 20:14:03 -0500 |
commit | 70463daca852db396ce17f179d2404b257ba0f66 (patch) | |
tree | d0f89336cd46ab79e8a42239fa758cf43857491d /include | |
parent | ec7fcaabbfb3c5bd5189f857b6ac7bb9745ef291 (diff) |
[PATCH] i386: Store the interrupt regs pointer in the PDA
Signed-off-by: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-i386/irq_regs.h | 28 | ||||
-rw-r--r-- | include/asm-i386/pda.h | 1 |
2 files changed, 28 insertions, 1 deletions
diff --git a/include/asm-i386/irq_regs.h b/include/asm-i386/irq_regs.h index 3dd9c0b70270..a1b3f7f594a2 100644 --- a/include/asm-i386/irq_regs.h +++ b/include/asm-i386/irq_regs.h | |||
@@ -1 +1,27 @@ | |||
1 | #include <asm-generic/irq_regs.h> | 1 | /* |
2 | * Per-cpu current frame pointer - the location of the last exception frame on | ||
3 | * the stack, stored in the PDA. | ||
4 | * | ||
5 | * Jeremy Fitzhardinge <jeremy@goop.org> | ||
6 | */ | ||
7 | #ifndef _ASM_I386_IRQ_REGS_H | ||
8 | #define _ASM_I386_IRQ_REGS_H | ||
9 | |||
10 | #include <asm/pda.h> | ||
11 | |||
12 | static inline struct pt_regs *get_irq_regs(void) | ||
13 | { | ||
14 | return read_pda(irq_regs); | ||
15 | } | ||
16 | |||
17 | static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs) | ||
18 | { | ||
19 | struct pt_regs *old_regs; | ||
20 | |||
21 | old_regs = read_pda(irq_regs); | ||
22 | write_pda(irq_regs, new_regs); | ||
23 | |||
24 | return old_regs; | ||
25 | } | ||
26 | |||
27 | #endif /* _ASM_I386_IRQ_REGS_H */ | ||
diff --git a/include/asm-i386/pda.h b/include/asm-i386/pda.h index 08a35c478af2..2ba2736aa109 100644 --- a/include/asm-i386/pda.h +++ b/include/asm-i386/pda.h | |||
@@ -15,6 +15,7 @@ struct i386_pda | |||
15 | 15 | ||
16 | int cpu_number; | 16 | int cpu_number; |
17 | struct task_struct *pcurrent; /* current process */ | 17 | struct task_struct *pcurrent; /* current process */ |
18 | struct pt_regs *irq_regs; | ||
18 | }; | 19 | }; |
19 | 20 | ||
20 | extern struct i386_pda *_cpu_pda[]; | 21 | extern struct i386_pda *_cpu_pda[]; |