Subject: Re: cpu_intr_p() does not exist for all ports
To: Martin Husemann <>
From: Andrew Doran <>
List: current-users
Date: 12/06/2007 15:12:49
On Thu, Dec 06, 2007 at 03:31:04PM +0100, Martin Husemann wrote:

> On Thu, Dec 06, 2007 at 02:24:53PM +0000, Andrew Doran wrote:
> > It would break again the next time it is enabled. It also goes a bit beyond
> > the number of ports, because some ports have multiple flavours of interrupt
> > dispatch code.
> What exactly does the predicate say? "This cpu is running on it's local 
> interrupt stack"? "We are in the bottom half of the kernel"? "We took
> some device interrupt and have not yet returned"?

The interrupt handling changes are described here:

Note that only the interrupt changes have gone into -HEAD so far. I filed
this PR a few days ago after looking at the interrupt path (although obviously
I missed adding cpu_intr_p() while there):

I have changed sparc to do the correct thing but sparc64 is missing the
calls. The simplest solution may be to add wrapper function if the interrupt
is registered at IPL_VM. x86 works like that: