Messages in this thread Patch in this message | | | Subject | [PATCH 01/16] hpsa: do readl after writel in main i/o path to ensure commands don't get lost. | From | "Stephen M. Cameron" <> | Date | Tue, 03 May 2011 14:58:49 -0500 |
| |
From: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Apparently we've been doin it rong for a decade, but only lately do we run into problems.
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> --- drivers/scsi/hpsa.h | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h index 621a153..98c97ca 100644 --- a/drivers/scsi/hpsa.h +++ b/drivers/scsi/hpsa.h @@ -212,6 +212,7 @@ static void SA5_submit_command(struct ctlr_info *h, dev_dbg(&h->pdev->dev, "Sending %x, tag = %x\n", c->busaddr, c->Header.Tag.lower); writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET); + (void) readl(h->vaddr + SA5_REQUEST_PORT_OFFSET); h->commands_outstanding++; if (h->commands_outstanding > h->max_outstanding) h->max_outstanding = h->commands_outstanding;
| |