linux-mips
[Top] [All Lists]

Re: MIPS, i8259 and spurious interrupts.

To: Scott A McConnell <samcconn@cotw.com>
Subject: Re: MIPS, i8259 and spurious interrupts.
From: Zhang Fuxin <fxzhang@ict.ac.cn>
Date: Tue, 26 Feb 2002 14:50:9 +0800
Cc: "linux-mips@oss.sgi.com" <linux-mips@oss.sgi.com>
Sender: owner-linux-mips@oss.sgi.com
hi,


>/************************************************************************************/
>/* Why am I not returning from the following
>call?                                  */
>/************************************************************************************/
>
>       printk("*** SP 1 irq: %d***\n", irq);
>       if (i8259A_irq_real(irq))
>               /*
>                * oops, the IRQ _is_ in service according to the
>                * 8259A - not spurious, go handle it.
>                */
>       printk("*** SP 2 ***\n");
>               goto handle_real_irq;
do you really mean it? the goto is unconditional now?
but your output susgest that i8259A_irq_real never return true
>
>       {
>               static int spurious_irq_mask = 0;
>
>       printk("*** SP 3 ***\n");
>
>               /*
>                * At this point we can be sure the IRQ is spurious,
>                * lets ACK and report it. [once per IRQ]
>                */
>       printk("*** SP 4 ***\n");
>
>               if (!(spurious_irq_mask & irqmask)) {
>                       printk("spurious 8259A interrupt: IRQ%d.\n", irq);
>                       spurious_irq_mask |= irqmask;
>               }
>       printk("*** SP 5 ***\n");
>
>               irq_err_count++;
>               /*
>                * Theoretically we do not have to handle this IRQ,
>                * but in Linux this does not cause problems and is
>                * simpler for us.
>                */
>       printk("*** SP 6 ***\n");
>
>               goto handle_real_irq;
>       }
>}
>
>
>Thanks in advance for any advice...
>
>-- 
>Scott A. McConnell

Regards
            Zhang Fuxin
            fxzhang@ict.ac.cn


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