summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/irq.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2013-10-11 07:39:37 +0200
committerIngo Molnar <mingo@kernel.org>2013-10-11 07:39:37 +0200
commitec0ad3d01f99d5e5b56a99a58f7003b99250dc65 (patch)
tree85066cbea1cf8da6d099019adefaca90aae39234 /arch/powerpc/kernel/irq.c
parentsched/numa: Reflow task_numa_group() to avoid a compiler warning (diff)
parentcompiler/gcc4: Add quirk for 'asm goto' miscompilation bug (diff)
downloadlinux-ec0ad3d01f99d5e5b56a99a58f7003b99250dc65.tar.xz
linux-ec0ad3d01f99d5e5b56a99a58f7003b99250dc65.zip
Merge branch 'core/urgent' into sched/core
Merge in asm goto fix, to be able to apply the asm/rmwcc.h fix. Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/powerpc/kernel/irq.c')
-rw-r--r--arch/powerpc/kernel/irq.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 57d286a78f86..c7cb8c232d2f 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -495,14 +495,15 @@ void __do_irq(struct pt_regs *regs)
void do_IRQ(struct pt_regs *regs)
{
struct pt_regs *old_regs = set_irq_regs(regs);
- struct thread_info *curtp, *irqtp;
+ struct thread_info *curtp, *irqtp, *sirqtp;
/* Switch to the irq stack to handle this */
curtp = current_thread_info();
irqtp = hardirq_ctx[raw_smp_processor_id()];
+ sirqtp = softirq_ctx[raw_smp_processor_id()];
/* Already there ? */
- if (unlikely(curtp == irqtp)) {
+ if (unlikely(curtp == irqtp || curtp == sirqtp)) {
__do_irq(regs);
set_irq_regs(old_regs);
return;