Thursday, July 06, 2006

irq thread

arch/blackfin/kernel/irqchip.c

do_irqd() {

while (!kthread_should_stop()) {
if (!down_interruptible(&desc->thrsem)) {
local_irq_disable();
desc->thrhandler(irq,&__ipipe_tick_regs[cpu]);
local_irq_enable();
}
}

}

/----------------------
Note: the semaphore here acts as a counter. So multi interrupt will not lost.
-----------------------/

No comments:

Blog Archive