On Thu, Sep 01, 2005 at 10:57:54PM +0100, Alan Cox wrote: > > +static irqreturn_t > > +kgdb8250_interrupt(int irq, void *dev_id, struct pt_regs *regs) > > +{ > > + char iir; > > + > > + if (irq != KGDB8250_IRQ) > > + return IRQ_NONE; > > How can this occur - you gave the IRQ number in the register_irq. WHy > test for it, and if it occurs why not BUG()
Early sanity tests, dropped. > > + /* > > + * If there is some other CPU in KGDB then this is a > > + * spurious interrupt. so return without even checking a byte > > + */ > > + if (atomic_read(&debugger_active)) > > + return IRQ_NONE; > > + > > Shared IRQ -> hung box. Can you elaborate a bit more please? When we're actually in KGDB and working on stuff we're polling so it's really just the GDB-is-interrupting case. > Also lose the ugly confusing macros like CURRENTPORT please to follow > kernel style better. In fact why not keep a pointer to the 'current' > uart to get tighter code too ? Sure, why not. -- Tom Rini http://gate.crashing.org/~trini/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/