

It think these functions should be returning IRQ_HANDLED, even though they
didn't recognise the IRQ.

They've just done

	snd_cs4281_pokeBA0(chip, BA0_HICR, BA0_HICR_EOI);

which presumably acks the interrupt anyway.



 sound/pci/cs4281.c            |    2 +-
 sound/pci/cs46xx/cs46xx_lib.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff -puN sound/pci/cs4281.c~irqreturn-sound-2 sound/pci/cs4281.c
--- 25/sound/pci/cs4281.c~irqreturn-sound-2	2003-04-24 05:17:11.000000000 -0700
+++ 25-akpm/sound/pci/cs4281.c	2003-04-24 05:17:11.000000000 -0700
@@ -1894,7 +1894,7 @@ static irqreturn_t snd_cs4281_interrupt(
 	status = snd_cs4281_peekBA0(chip, BA0_HISR);
 	if ((status & 0x7fffffff) == 0) {
 		snd_cs4281_pokeBA0(chip, BA0_HICR, BA0_HICR_EOI);
-		return IRQ_NONE;
+		return IRQ_HANDLED;
 	}
 
 	if (status & (BA0_HISR_DMA(0)|BA0_HISR_DMA(1)|BA0_HISR_DMA(2)|BA0_HISR_DMA(3))) {
diff -puN sound/pci/cs46xx/cs46xx_lib.c~irqreturn-sound-2 sound/pci/cs46xx/cs46xx_lib.c
--- 25/sound/pci/cs46xx/cs46xx_lib.c~irqreturn-sound-2	2003-04-24 05:17:11.000000000 -0700
+++ 25-akpm/sound/pci/cs46xx/cs46xx_lib.c	2003-04-24 05:17:11.000000000 -0700
@@ -1234,7 +1234,7 @@ static irqreturn_t snd_cs46xx_interrupt(
 	status1 = snd_cs46xx_peekBA0(chip, BA0_HISR);
 	if ((status1 & 0x7fffffff) == 0) {
 		snd_cs46xx_pokeBA0(chip, BA0_HICR, HICR_CHGM | HICR_IEV);
-		return IRQ_NONE;
+		return IRQ_HANDLED;
 	}
 
 #ifdef CONFIG_SND_CS46XX_NEW_DSP

_
