Skip to contentSkip to conversation

sata_mv fix MSI irq race condition

PATCH Applied Mark Lord 2 participants 2 messages Mar 10, 2009 – Mar 13, 2009 libata

lore
Share & tools
lore

Mark Lord

author
#0 lore raw

PATCH 1/1 sata_mv fix MSI irq race condition

Fix a (rare) race condition in mv_interrupt() when using MSI.

The value of hpriv->main_irq_mask_addr can change on on the fly, and without this patch we could end up writing back a stale copy to the hardware.

--

** This is required for 2.6.29 and beyond ***

drivers/ata/sata_mv.c +0 -0
@@ -2218,12 +2218,13 @@
		else
			handled = mv_host_intr(host, pending_irqs);
	}

- spin_unlock(&host->lock);

	/* for MSI: unmask; interrupt cause bits will retrigger now */
	if (using_msi)
		writel(hpriv->main_irq_mask, hpriv->main_irq_mask_addr);

+ spin_unlock(&host->lock);
+

	return IRQ_RETVAL(handled);
}
Applied
#1 lore raw
Quoted 10 lines · Mark Lord

Fix a (rare) race condition in mv_interrupt() when using MSI.

The value of hpriv->main_irq_mask_addr can change on on the fly, and without this patch we could end up writing back a stale copy to the hardware.

Signature · 1 line
** This is required for 2.6.29 and beyond ***

applied