linux-mips
[Top] [All Lists]

Re: [MIPS] irq_cpu: use handle_percpu_irq handler to avoid dropping inte

To: linux-mips@linux-mips.org
Subject: Re: [MIPS] irq_cpu: use handle_percpu_irq handler to avoid dropping interrupts.
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Fri, 23 Nov 2007 00:41:32 +0900 (JST)
Cc: ralf@linux-mips.org
In-reply-to: <S20032632AbXKOURg/20071115201736Z+24020@ftp.linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <S20032632AbXKOURg/20071115201736Z+24020@ftp.linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
On Thu, 15 Nov 2007 20:17:31 +0000, linux-mips@linux-mips.org wrote:
> Subject: [MIPS] irq_cpu: use handle_percpu_irq handler to avoid dropping 
> interrupts.
> Author: Ralf Baechle <ralf@linux-mips.org> Thu Nov 15 19:37:15 2007 +0000
> Commit: eebc88e5d2cffc07b969c8f426552a44e5ce51f8
> Gitweb: http://www.linux-mips.org/g/linux/eebc88e5
> Branch: master

This might broke probe_irq_on()/probe_irq_off(), since
handle_percpu_irq() does not check IRQ_WAITING bit.

This is a quick fix.  But I'm not sure where is the right place to fix...

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
---
diff --git a/arch/mips/kernel/irq_cpu.c b/arch/mips/kernel/irq_cpu.c
index 0ee2567..9d97d4b 100644
--- a/arch/mips/kernel/irq_cpu.c
+++ b/arch/mips/kernel/irq_cpu.c
@@ -114,7 +114,9 @@ void __init mips_cpu_irq_init(void)
                for (i = irq_base; i < irq_base + 2; i++)
                        set_irq_chip(i, &mips_mt_cpu_irq_controller);
 
-       for (i = irq_base + 2; i < irq_base + 8; i++)
+       for (i = irq_base + 2; i < irq_base + 8; i++) {
                set_irq_chip_and_handler(i, &mips_cpu_irq_controller,
                                         handle_percpu_irq);
+               irq_desc[i].status |= IRQ_NOPROBE;
+       }
 }

<Prev in Thread] Current Thread [Next in Thread>