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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux