--- /dev/null
+Subject: Fix errors due to inconsistent command data
+From: Brian J. King <brking@us.ibm.com>
+References: 456654 - LTC50451
+
+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: Olaf Hering <olh@suse.de>
+---
+
+ drivers/scsi/ibmvscsi/ibmvfc.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/scsi/ibmvscsi/ibmvfc.c
++++ b/drivers/scsi/ibmvscsi/ibmvfc.c
+@@ -1381,6 +1381,8 @@ static int ibmvfc_send_event(struct ibmv
+ add_timer(&evt->timer);
+ }
+
++ mb();
++
+ if ((rc = ibmvfc_send_crq(vhost, crq_as_u64[0], crq_as_u64[1]))) {
+ list_del(&evt->queue);
+ del_timer(&evt->timer);