diff options
author | Yang, Bo <Bo.Yang@lsi.com> | 2008-08-10 15:42:37 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-08-16 11:12:19 -0400 |
commit | 06f579dee5dd75c2aaf8fe83d034b5470eeee2f4 (patch) | |
tree | 57e96328d00390037f95a58e1225f1e2099e7bdc | |
parent | d211f052fa58a053639bc51501cb64421157d362 (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>
-rw-r--r-- | drivers/scsi/megaraid/megaraid_sas.c | 6 |
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, ®s->outbound_intr_status); | 199 | writel(status, ®s->outbound_intr_status); |
200 | 200 | ||
201 | /* Dummy readl to force pci flush */ | ||
202 | readl(®s->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, ®s->outbound_doorbell_clear); | 297 | writel(status, ®s->outbound_doorbell_clear); |
295 | 298 | ||
299 | /* Dummy readl to force pci flush */ | ||
300 | readl(®s->outbound_doorbell_clear); | ||
301 | |||
296 | return 0; | 302 | return 0; |
297 | } | 303 | } |
298 | /** | 304 | /** |