aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorYang, Bo <Bo.Yang@lsi.com>2008-08-10 15:42:37 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-08-16 11:12:19 -0400
commit06f579dee5dd75c2aaf8fe83d034b5470eeee2f4 (patch)
tree57e96328d00390037f95a58e1225f1e2099e7bdc /drivers/scsi
parentd211f052fa58a053639bc51501cb64421157d362 (diff)
[SCSI] megaraid_sas: add readl to force PCI posting flush
MegaRAID SAS Driver get unexpected Interrupt. Add the dummy readl to force PCI flush will fix this issue. Signed-off-by: Bo Yang <bo.yang@lsi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Stable Tree <stable@kernel.org> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/megaraid/megaraid_sas.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/megaraid/megaraid_sas.c b/drivers/scsi/megaraid/megaraid_sas.c
index fc7ac158476c..d7b99843ca3e 100644
--- a/drivers/scsi/megaraid/megaraid_sas.c
+++ b/drivers/scsi/megaraid/megaraid_sas.c
@@ -198,6 +198,9 @@ megasas_clear_intr_xscale(struct megasas_register_set __iomem * regs)
198 */ 198 */
199 writel(status, &regs->outbound_intr_status); 199 writel(status, &regs->outbound_intr_status);
200 200
201 /* Dummy readl to force pci flush */
202 readl(&regs->outbound_intr_status);
203
201 return 0; 204 return 0;
202} 205}
203 206
@@ -293,6 +296,9 @@ megasas_clear_intr_ppc(struct megasas_register_set __iomem * regs)
293 */ 296 */
294 writel(status, &regs->outbound_doorbell_clear); 297 writel(status, &regs->outbound_doorbell_clear);
295 298
299 /* Dummy readl to force pci flush */
300 readl(&regs->outbound_doorbell_clear);
301
296 return 0; 302 return 0;
297} 303}
298/** 304/**