>>>>> On Fri, 28 May 2004 10:51:51 -0700, Jun Sun <jsun@xxxxxxxxxx> said: >> Q1. What is purpose of this block? (To decrease latency? But >> other archs (and 2.6 MIPS kernel) do not have block like this...) jsun> This is to check possible preemption at the end of (possibly jsun> nested) interrupt handling. jsun> All other arches and 2.6 MIPS are doing the same thing in .S jsun> file (something like ret_from_irq path) Oh, I found it in 2.6 MIPS kernel. Thank you very much. >> Q2. If an interrupt happened between __sti() and __cli(), and the >> interrupt handler raise softirq, the softirq handler will not be >> called soon (because do_softirq() immediately return if preempt >> disabled). So we must check softirq_pending again after this >> block? jsun> do_softirq() does not (and should not) return when preemtpion is jsun> disabled. We should be fine here. Sorry, it was my mistake. I was misreading the in_interrupt() code... (&& and ||). Thank you. --- Atsushi Nemoto