snd_printk("IRQ failure - interrupts disabled!!\n"); 
snd_printk(KERN_ERR "IRQ failure - interrupts disabled!!\n"); 
static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_regs *regs){	sonicvibes_t *sonic = dev_id;	unsigned char status;	status = inb(SV_REG(sonic, STATUS));	if (!(status & (SV_DMAA_IRQ | SV_DMAC_IRQ | SV_MIDI_IRQ)))		return IRQ_NONE;	if (status == 0xff) {	/* failure */		outb(sonic->irqmask = ~0, SV_REG(sonic, IRQMASK));		snd_printk("IRQ failure - interrupts disabled!!\n");		return IRQ_HANDLED;	}	if (sonic->pcm) {		if (status & SV_DMAA_IRQ)			snd_pcm_period_elapsed(sonic->playback_substream);		if (status & SV_DMAC_IRQ)			snd_pcm_period_elapsed(sonic->capture_substream);	}	if (sonic->rmidi) {		if (status & SV_MIDI_IRQ)			snd_mpu401_uart_interrupt(irq, sonic->rmidi->private_data, regs);	}	if (status & SV_UD_IRQ) {		unsigned char udreg;		int vol, oleft, oright, mleft, mright;		spin_lock(&sonic->reg_lock);		udreg = snd_sonicvibes_in1(sonic, SV_IREG_UD_BUTTON);		vol = udreg & 0x3f;		if (!(udreg & 0x40))			vol = -vol;		oleft = mleft = snd_sonicvibes_in1(sonic, SV_IREG_LEFT_ANALOG);		oright = mright = snd_sonicvibes_in1(sonic, SV_IREG_RIGHT_ANALOG);		oleft &= 0x1f;		oright &= 0x1f;		oleft += vol;		if (oleft < 0)			oleft = 0;		if (oleft > 0x1f)			oleft = 0x1f;		oright += vol;		if (oright < 0)			oright = 0;		if (oright > 0x1f)			oright = 0x1f;		if (udreg & 0x80) {			mleft ^= 0x80;			mright ^= 0x80;		}		oleft |= mleft & 0x80;		oright |= mright & 0x80;		snd_sonicvibes_out1(sonic, SV_IREG_LEFT_ANALOG, oleft);		snd_sonicvibes_out1(sonic, SV_IREG_RIGHT_ANALOG, oright);		spin_unlock(&sonic->reg_lock);		snd_ctl_notify(sonic->card, SNDRV_CTL_EVENT_MASK_VALUE, &sonic->master_mute->id);		snd_ctl_notify(sonic->card, SNDRV_CTL_EVENT_MASK_VALUE, &sonic->master_volume->id);	}	return IRQ_HANDLED;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/99b359ba10a582148c6725f428a33ba5356dd993/sonicvibes.c/buggy/sound/pci/sonicvibes.c