2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-24 21:24:00 +08:00

advansys: use spin_lock_irqsave() in interrupt handler

We should be using spin_lock_irqsave() when within the
interrupt handler.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
This commit is contained in:
Hannes Reinecke 2015-04-24 13:18:40 +02:00 committed by James Bottomley
parent 2207063443
commit 00742c9164

View File

@ -7242,9 +7242,10 @@ static irqreturn_t advansys_interrupt(int irq, void *dev_id)
struct Scsi_Host *shost = dev_id; struct Scsi_Host *shost = dev_id;
struct asc_board *boardp = shost_priv(shost); struct asc_board *boardp = shost_priv(shost);
irqreturn_t result = IRQ_NONE; irqreturn_t result = IRQ_NONE;
unsigned long flags;
ASC_DBG(2, "boardp 0x%p\n", boardp); ASC_DBG(2, "boardp 0x%p\n", boardp);
spin_lock(shost->host_lock); spin_lock_irqsave(shost->host_lock, flags);
if (ASC_NARROW_BOARD(boardp)) { if (ASC_NARROW_BOARD(boardp)) {
if (AscIsIntPending(shost->io_port)) { if (AscIsIntPending(shost->io_port)) {
result = IRQ_HANDLED; result = IRQ_HANDLED;
@ -7259,7 +7260,7 @@ static irqreturn_t advansys_interrupt(int irq, void *dev_id)
ASC_STATS(shost, interrupt); ASC_STATS(shost, interrupt);
} }
} }
spin_unlock(shost->host_lock); spin_unlock_irqrestore(shost->host_lock, flags);
ASC_DBG(1, "end\n"); ASC_DBG(1, "end\n");
return result; return result;