[haiku-development] Re: bug 2084

  • From: "Michael Lotz" <mmlr@xxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Wed, 18 Feb 2009 19:01:00

> Michael Lotz wrote:
> > They could then just always be 
> > added to the very end of the interrupt handler list, meaning they 
> > won't 
> > be able to steal interrupts from anyone.
> 
> If an interrupt handler cannot tell whether or not the interrupt was
> generated by its device, it should always return B_UNHANDLED_
> INTERRUPT.
> This is what the "fast" interrupt handler of the FreeBSD 
> compatibility
> layer already does; since FreeBSD 7 it could check the return value 
> of
> the interrupt handling function, though (it currently doesn't).

Yup. If it consequently returns B_UNHANDLED_INTERRUPT this part of the 
workaround is not necessary. I actually just didn't bother digging into 
it enough to ensure that as it could so easily be done on the kernel 
side.

Still you want to know whether or not the returned result is reliable 
or not because of the interrupt disable code we have in place. Before, 
it would have been possible for the device to go dead after a while 
because of us disabling interrupt vectors that are always "unhandled". 
So having the info that the return value is unreliable is at least 
something.

Regards
Michael

Other related posts: