[lkml]   [2006]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectR: R: How to avoid serial port buffer overruns?
> -----Messaggio originale-----
> Da: Robert Hancock []
> Inviato: venerdì 18 agosto 2006 16.31
> A: Giampaolo Tomassoni
> Cc: Linux Kernel ML
> Oggetto: Re: R: How to avoid serial port buffer overruns?
> IRQ_HANDLED vs. IRQ_NONE has no effect on what interrupt handlers are
> called, etc. It is only used to detect if an interrupt is firing without
> being handled by any driver, in this case the kernel can detect this and
> disable the interrupt.
> I'm not sure exactly why the driver is returning IRQ_HANDLED all the
> time, but edge-triggered interrupts are always tricky and there may be a
> case where it can't reliably detect this. Returning IRQ_HANDLED is the
> safe thing to do if you cannot be sure if your device raised an
> interrupt or not.

Oh, I see. This in handle_IRQ_event in /kernel/irq/handle.c confirms what you said:

do {
ret = action->handler(irq, action->dev_id, regs);
if (ret == IRQ_HANDLED)
status |= action->flags;
retval |= ret;
action = action->next;
} while (action);

There is no escape from the loop when the handler returns IRQ_HANDLED.



> --
> Robert Hancock Saskatoon, SK, Canada
> To email, remove "nospam" from
> Home Page:

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2006-08-18 17:01    [W:0.043 / U:5.948 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site