diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-22 17:54:21 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-22 17:54:21 +0200 |
commit | 91151240ed8e97cc4457dae4094153c2744f1eb8 (patch) | |
tree | 201a449a659bcc31cf528f4630b8ec4c49b26f02 /arch/x86/kernel/irq_32.c | |
parent | Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/ker... (diff) | |
parent | x86, 32-bit: Align percpu area and irq stacks to THREAD_SIZE (diff) | |
download | linux-91151240ed8e97cc4457dae4094153c2744f1eb8.tar.xz linux-91151240ed8e97cc4457dae4094153c2744f1eb8.zip |
Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86, 32-bit: Align percpu area and irq stacks to THREAD_SIZE
x86: Move alloc_desk_mask variables inside ifdef
x86-32: Align IRQ stacks properly
x86: Remove CONFIG_4KSTACKS
x86: Always use irq stacks
Fixed up trivial conflicts in include/linux/{irq.h, percpu-defs.h}
Diffstat (limited to 'arch/x86/kernel/irq_32.c')
-rw-r--r-- | arch/x86/kernel/irq_32.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c index 10709f29d166..50fbbe60e507 100644 --- a/arch/x86/kernel/irq_32.c +++ b/arch/x86/kernel/irq_32.c @@ -49,20 +49,19 @@ static inline int check_stack_overflow(void) { return 0; } static inline void print_stack_overflow(void) { } #endif -#ifdef CONFIG_4KSTACKS /* * per-CPU IRQ handling contexts (thread information and stack) */ union irq_ctx { struct thread_info tinfo; u32 stack[THREAD_SIZE/sizeof(u32)]; -} __attribute__((aligned(PAGE_SIZE))); +} __attribute__((aligned(THREAD_SIZE))); static DEFINE_PER_CPU(union irq_ctx *, hardirq_ctx); static DEFINE_PER_CPU(union irq_ctx *, softirq_ctx); -static DEFINE_PER_CPU_PAGE_ALIGNED(union irq_ctx, hardirq_stack); -static DEFINE_PER_CPU_PAGE_ALIGNED(union irq_ctx, softirq_stack); +static DEFINE_PER_CPU_MULTIPAGE_ALIGNED(union irq_ctx, hardirq_stack, THREAD_SIZE); +static DEFINE_PER_CPU_MULTIPAGE_ALIGNED(union irq_ctx, softirq_stack, THREAD_SIZE); static void call_on_stack(void *func, void *stack) { @@ -187,11 +186,6 @@ asmlinkage void do_softirq(void) local_irq_restore(flags); } -#else -static inline int -execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq) { return 0; } -#endif - bool handle_irq(unsigned irq, struct pt_regs *regs) { struct irq_desc *desc; |