I have an ISR that seems to happen twice for each interrupt. I have verified that interrupt pin is deactivated when I receive the second interrupt. I understand that that Linux has some sort of queuing for interrupts, but have not be able to find much information on this. How do I stop this second interrupt? The following code is for a Linux 2.4 kernel. _syscall1(int, nice, int, increment) /*=========================================================================== ===========================================================================*/ static int wait_4_irq_thread(void *unused) { /* * This thread doesn't need any user-level access, * so get rid of all our resources */ daemonize(); reparent_to_init(); /* Setup a nice name */ strcpy(current->comm, "16is7xx"); /* this is an isr so let's get rude and set it as top priority */ nice(-40); /* Send me a signal to get me die (for debugging) */ do { wait_event_interruptible(is7xx_wait, (is7xx_interrupt_dev_id != NULL)); if(is7xx_interrupt_dev_id != NULL) { is7xx_handle_irq(); is7xx_interrupt_dev_id = NULL; enable_irq(is7xx_interrupt_irq); } } while (!signal_pending(current)); complete_and_exit(&is7xx_exited, 0); } /*=========================================================================== ===========================================================================*/ static void is7xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) { if(irq == IS7XX_IRQ) { is7xx_interrupt_dev_id = dev_id; is7xx_interrupt_irq = irq; disable_irq(irq); wake_up(&is7xx_wait); } else { printk(KERN_ERR "wrong 16is7-- serial interrupt" "expected %d got %d\n",IS7XX_IRQ, irq); }} ____________________________________________________________________________________ Any questions? Get answers on any topic at www.Answers.yahoo.com. Try it now. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/