diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2008-04-30 04:49:55 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2008-06-02 15:54:42 -0400 |
commit | bcf0b0880710409420a4e3b15dbf4b9a63542c0b (patch) | |
tree | ca1c813648ea075b772112237fde3ccfe3ddb776 /include | |
parent | c054065bc10a7ee2bcf78b5bc95f4b4d9bdc923a (diff) |
[POWERPC] Move to runtime allocated exception stacks
For the additonal exception levels (critical, debug, machine check) on
40x/book-e we were using "static" allocations of the stack in the
associated head.S.
Move to a runtime allocation to make the code a bit easier to read as
we mimic how we handle IRQ stacks. Its also a bit easier to setup the
stack with a "dummy" thread_info in C code.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-powerpc/irq.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h index 5089deb8fec3..1ef8e304e0ea 100644 --- a/include/asm-powerpc/irq.h +++ b/include/asm-powerpc/irq.h | |||
@@ -619,6 +619,19 @@ struct pt_regs; | |||
619 | 619 | ||
620 | #define __ARCH_HAS_DO_SOFTIRQ | 620 | #define __ARCH_HAS_DO_SOFTIRQ |
621 | 621 | ||
622 | #if defined(CONFIG_BOOKE) || defined(CONFIG_40x) | ||
623 | /* | ||
624 | * Per-cpu stacks for handling critical, debug and machine check | ||
625 | * level interrupts. | ||
626 | */ | ||
627 | extern struct thread_info *critirq_ctx[NR_CPUS]; | ||
628 | extern struct thread_info *dbgirq_ctx[NR_CPUS]; | ||
629 | extern struct thread_info *mcheckirq_ctx[NR_CPUS]; | ||
630 | extern void exc_lvl_ctx_init(void); | ||
631 | #else | ||
632 | #define exc_lvl_ctx_init() | ||
633 | #endif | ||
634 | |||
622 | #ifdef CONFIG_IRQSTACKS | 635 | #ifdef CONFIG_IRQSTACKS |
623 | /* | 636 | /* |
624 | * Per-cpu stacks for handling hard and soft interrupts. | 637 | * Per-cpu stacks for handling hard and soft interrupts. |