Re: [PATCH v2] irq_domain/microblaze: Convert microblaze to use irq_domains
From: Grant Likely <hidden>
Date: 2012-02-02 20:01:13
On Thu, Feb 02, 2012 at 12:59:34PM +0100, Michal Simek wrote:
quoted hunk
From: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org> Move get_irq to asm/irq.h from hardirq.h. Grant: Why does your patch setup NR_IRQS to 64? It seems to me pretty big value because intc support up to 32 interrupts. The main problem was with get_irq function because there must check status of IVR. Signed-off-by: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org> Signed-off-by: Michal Simek <redacted> Cc: Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> Cc: John Williams <redacted> Cc: John Linn <redacted> ---diff --git a/arch/microblaze/kernel/irq.c b/arch/microblaze/kernel/irq.c index 3f613df..ace700a 100644 --- a/arch/microblaze/kernel/irq.c +++ b/arch/microblaze/kernel/irq.c@@ -31,14 +31,13 @@ void __irq_entry do_IRQ(struct pt_regs *regs) trace_hardirqs_off(); irq_enter(); - irq = get_irq(regs); + irq = get_irq(); next_irq: BUG_ON(!irq); - /* Substract 1 because of get_irq */ - generic_handle_irq(irq + IRQ_OFFSET - NO_IRQ_OFFSET); + generic_handle_irq(irq); - irq = get_irq(regs); - if (irq) { + irq = get_irq(); + if (irq != -1U) {
irq should never be -1 now with my current tree. I've just pushed it out, can you take a look and try it with the original "if (!irq)" test? g.