Subject: Re: Problems with ath(4) and interrupt sharing
To: Joerg Sonnenberger <joerg@britannica.bec.de>
From: Brian Buhrow <buhrow@lothlorien.nfbcal.org>
List: port-i386
Date: 12/08/2007 16:14:16
	Hello.  In thinking about this even more, and doing a little source
reading, I think my problem can be more succinctly stated.

	The trouble seems to be that the ath(4) driver is in the interrupt
chain ahead of the auich(4) driver.  Yet, the auich(4) driver establishes
its interrupt at IPL_AUDIO, while the ath(4) driver establishes its
interrupt at IPL_NET.  If my understanding of interrupt priorities is
right, IPL_AUDIO is a higher interrupt priority than IPL_NET, meaning that
if the machine is at interrupt IPL_AUDIO, all network interrupts will be
blocked.  So, if the auich(4) driver asserts an interrupt, but never
receives it, because the ath(4) driver ate it, the ath(4) driver will never
receive another interrupt because it's being blocked by the currently
running interrupt priority.

Questions:

1.  If two devices of different interrupt priorities share an interrupt,
what is the interrupt priority set to when that shared interrupt fires?

2.  Is there a mechanism to set things up so that the highest priority
device gets to be first in the interrupt chain?  Does it matter?

-thanks
-Brian