diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-11-01 23:16:51 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2007-11-01 23:16:51 -0400 |
commit | 110ed28246a0063a5984d7f72ba5c97f154a51cf (patch) | |
tree | cf1611203f161caabd9c24022df2477656eda853 /arch/sh/kernel/irq.c | |
parent | 0e670685e4925930000a678c74eb1cbf23b415fa (diff) |
sh: Decouple 4k and soft/hardirq stacks.
While using separate IRQ stacks can cut down on stack consumption,
many users can also use 4k stacks directly without the additional
need of separate stacks for soft and hardirqs.
With this split, we support the same rationale for 4KSTACKS as
m68knommu, with the IRQSTACKS abstraction as per ppc64.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/irq.c')
-rw-r--r-- | arch/sh/kernel/irq.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c index 4b49d03ffbd2..348da194ec99 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c | |||
@@ -69,7 +69,7 @@ unlock: | |||
69 | } | 69 | } |
70 | #endif | 70 | #endif |
71 | 71 | ||
72 | #ifdef CONFIG_4KSTACKS | 72 | #ifdef CONFIG_IRQSTACKS |
73 | /* | 73 | /* |
74 | * per-CPU IRQ handling contexts (thread information and stack) | 74 | * per-CPU IRQ handling contexts (thread information and stack) |
75 | */ | 75 | */ |
@@ -85,7 +85,7 @@ static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly; | |||
85 | asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs) | 85 | asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs) |
86 | { | 86 | { |
87 | struct pt_regs *old_regs = set_irq_regs(regs); | 87 | struct pt_regs *old_regs = set_irq_regs(regs); |
88 | #ifdef CONFIG_4KSTACKS | 88 | #ifdef CONFIG_IRQSTACKS |
89 | union irq_ctx *curctx, *irqctx; | 89 | union irq_ctx *curctx, *irqctx; |
90 | #endif | 90 | #endif |
91 | 91 | ||
@@ -109,7 +109,7 @@ asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs) | |||
109 | 109 | ||
110 | irq = irq_demux(evt2irq(irq)); | 110 | irq = irq_demux(evt2irq(irq)); |
111 | 111 | ||
112 | #ifdef CONFIG_4KSTACKS | 112 | #ifdef CONFIG_IRQSTACKS |
113 | curctx = (union irq_ctx *)current_thread_info(); | 113 | curctx = (union irq_ctx *)current_thread_info(); |
114 | irqctx = hardirq_ctx[smp_processor_id()]; | 114 | irqctx = hardirq_ctx[smp_processor_id()]; |
115 | 115 | ||
@@ -157,7 +157,7 @@ asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs) | |||
157 | return 1; | 157 | return 1; |
158 | } | 158 | } |
159 | 159 | ||
160 | #ifdef CONFIG_4KSTACKS | 160 | #ifdef CONFIG_IRQSTACKS |
161 | static char softirq_stack[NR_CPUS * THREAD_SIZE] | 161 | static char softirq_stack[NR_CPUS * THREAD_SIZE] |
162 | __attribute__((__section__(".bss.page_aligned"))); | 162 | __attribute__((__section__(".bss.page_aligned"))); |
163 | 163 | ||