Subject: why irq -1 is being passed to do_IRQ..?

From: "ashish anand" <[email-masked]>
Date: 4 Sep 2003 08:03:15 -0000

Hello,

I am writing to this list after a long back.

I have spurious interrupt problem in do_IRQ() in otherwise 
stable
linux port on mips lexra board .problem happens if I use ISDN 
phones.
but it doesn't happen essentially before or after ISDN card 
interrupt.
we have tried writing FFh in ISDN card mask register then again 
restoring old mask in end of ISDN ISR as indicated in ISDN manual 
for interfacing with some interrupt controllers , but it didn't 
help much.
so might be some minute problem in BSP.but i have a more 
fundamental question for now.

actually do_IRQ calls mask_irq and unmask_irq and there it 
prints
".......wrong irq number -1 pased.........."
if i see the code for file int-handler.S

In the first level interrupt handling code  we jump to do_IRQ only 
when irq is >= 0 otherwise we just  return as per the code piece 
below.

as per the code below do_IRQ() should always be passed a valid irq 
number.

                 lw      
a0,%lo(cpu_irq_nr-cpu_mask_tbl-PTRSIZE)(t1)
                  nop
                 bgez    a0, handle_it           # irq_nr >= 0?
                                                # irq_nr < 0: just 
exit
                  nop
                  j       return_
                  nop                            # delay slot

handle_it:      jal     do_IRQ
                  move   a1,sp
return_:        j       ret_from_irq
                  nop

                 END(lx_handle_int)
#endif
I am litle confused why irq -1 is being passed to do_IRQ at all.
pls. cc the reply to me as well.

Best Regards,
Ashish
___________________________________________________
Meet your old school or college friends from
1 Million + database...
Click here to reunite www.batchmates.com/rediff.asp