sata_mv fix MSI irq race condition
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.
Signed-off-by Mark Lord <[email protected]>
--
** 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); }
Jeff Garzik
AppliedQuoted 10 lines · Mark Lord
Fix a (rare) race condition in
mv_interrupt()when using MSI.The value of
hpriv->main_irq_mask_addrcan change on on the fly, and without this patch we could end up writing back a stale copy to the hardware.Signed-off-by Mark Lord <[email protected]>Signature · 1 line
** This is required for 2.6.29 and beyond ***
applied