Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00742c91 authored by Hannes Reinecke's avatar Hannes Reinecke Committed by James Bottomley
Browse files

advansys: use spin_lock_irqsave() in interrupt handler



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

Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarJames Bottomley <JBottomley@Odin.com>
parent 22070634
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -7242,9 +7242,10 @@ static irqreturn_t advansys_interrupt(int irq, void *dev_id)
	struct Scsi_Host *shost = dev_id;
	struct asc_board *boardp = shost_priv(shost);
	irqreturn_t result = IRQ_NONE;
	unsigned long flags;

	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 (AscIsIntPending(shost->io_port)) {
			result = IRQ_HANDLED;
@@ -7259,7 +7260,7 @@ static irqreturn_t advansys_interrupt(int irq, void *dev_id)
			ASC_STATS(shost, interrupt);
		}
	}
	spin_unlock(shost->host_lock);
	spin_unlock_irqrestore(shost->host_lock, flags);

	ASC_DBG(1, "end\n");
	return result;