diff options
author | Brian King <brking@linux.vnet.ibm.com> | 2008-12-03 12:02:56 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-12-29 12:24:24 -0500 |
commit | a528ab7a324f1dbb3598ae0ecd238ab7dd974294 (patch) | |
tree | acf24e35dd3d4d11af2410b5865479a571534220 /drivers/scsi/ibmvscsi/ibmvfc.c | |
parent | 1c41fa8288277e76785acb50f52bb2f39509f903 (diff) |
[SCSI] ibmvfc: Fix errors due to inconsistent command data
In order to ensure the VIOS sees a consistent command buffer, we
need to add a memory barrier after building the command buffer
but before sending the command.
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/ibmvscsi/ibmvfc.c')
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvfc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c index 2aa3d695d548..a401e938a87a 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.c +++ b/drivers/scsi/ibmvscsi/ibmvfc.c | |||
@@ -1381,6 +1381,8 @@ static int ibmvfc_send_event(struct ibmvfc_event *evt, | |||
1381 | add_timer(&evt->timer); | 1381 | add_timer(&evt->timer); |
1382 | } | 1382 | } |
1383 | 1383 | ||
1384 | mb(); | ||
1385 | |||
1384 | if ((rc = ibmvfc_send_crq(vhost, crq_as_u64[0], crq_as_u64[1]))) { | 1386 | if ((rc = ibmvfc_send_crq(vhost, crq_as_u64[0], crq_as_u64[1]))) { |
1385 | list_del(&evt->queue); | 1387 | list_del(&evt->queue); |
1386 | del_timer(&evt->timer); | 1388 | del_timer(&evt->timer); |