Skip to content

Commit

Permalink
[ALSA] intel8x0 - Fix Oops at kdump crash kernel
Browse files Browse the repository at this point in the history
Fixed Oops at crash kernel from intel8x0 driver that is triggered
from interrupt handler.  Proper irqsave version seems needed for
kexec/kdump.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
  • Loading branch information
Takashi Iwai authored and Jaroslav Kysela committed Mar 14, 2007
1 parent 0a07aca commit 883be79
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions sound/pci/intel8x0.c
Original file line number Diff line number Diff line change
Expand Up @@ -725,10 +725,11 @@ static void fill_nocache(void *buf, int size, int nocache)
static inline void snd_intel8x0_update(struct intel8x0 *chip, struct ichdev *ichdev)
{
unsigned long port = ichdev->reg_offset;
unsigned long flags;
int status, civ, i, step;
int ack = 0;

spin_lock(&chip->reg_lock);
spin_lock_irqsave(&chip->reg_lock, flags);
status = igetbyte(chip, port + ichdev->roff_sr);
civ = igetbyte(chip, port + ICH_REG_OFF_CIV);
if (!(status & ICH_BCIS)) {
Expand Down Expand Up @@ -768,7 +769,7 @@ static inline void snd_intel8x0_update(struct intel8x0 *chip, struct ichdev *ich
ack = 1;
}
}
spin_unlock(&chip->reg_lock);
spin_unlock_irqrestore(&chip->reg_lock, flags);
if (ack && ichdev->substream) {
snd_pcm_period_elapsed(ichdev->substream);
}
Expand Down

0 comments on commit 883be79

Please sign in to comment.