linux/drivers/scsi/lpfc
James Smart 27f344eb15 lpfc: Add iotag memory barrier
Add a memory barrier to ensure the valid bit is read before
any of the cqe payload is read. This fixes an issue seen
on Power where the cqe payload was getting loaded before
the valid bit. When this occurred, we saw an iotag out of
range error when a command completed, but since the iotag
looked invalid the command didn't get completed to scsi core.
Later we hit the command timeout, attempted to abort the command,
then waited for the aborted command to get returned. Since the
adapter already returned the command, we timeout waiting,
and end up escalating EEH all the way to host reset. This
patch fixes this issue.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Smart <james.smart@emulex.com>

 ---

 lpfc_sli.c |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
Signed-off-by: Christoph Hellwig <hch@lst.de>
2014-05-19 19:12:25 +02:00
..
lpfc_attr.c [SCSI] lpfc 8.3.45: Fix sysfs buffer overrun in read of lpfc_fcp_cpu_map for 128 CPUs. 2014-03-15 10:18:57 -07:00
lpfc_bsg.c [SCSI] lpfc 8.3.45: Added dport mailbox pass through support. 2014-03-15 10:18:56 -07:00
lpfc_bsg.h [SCSI] lpfc 8.3.45: Added dport mailbox pass through support. 2014-03-15 10:18:56 -07:00
lpfc_compat.h [SCSI] lpfc 8.3.28: Critical Miscellaneous fixes 2011-12-15 10:57:45 +04:00
lpfc_crtn.h [SCSI] lpfc 8.3.45: Incorporate changes to use reason in change_queue_depth function. 2014-03-15 10:18:56 -07:00
lpfc_ct.c [SCSI] lpfc: Fix typo on NULL assignment 2013-10-25 11:25:54 +01:00
lpfc_debugfs.c [SCSI] lpfc 8.3.45: Incorporated support of a low-latency io path 2014-03-15 10:18:56 -07:00
lpfc_debugfs.h [SCSI] lpfc 8.3.33: Tie parallel I/O queues into separate MSIX vectors 2012-09-14 14:41:19 +01:00
lpfc_disc.h [SCSI] lpfc 8.3.44: Fix kernel panics from corrupted ndlp list 2014-03-15 10:18:55 -07:00
lpfc_els.c [SCSI] lpfc 8.3.45: Fixed crash during driver unload. 2014-03-15 10:18:57 -07:00
lpfc_hbadisc.c [SCSI] lpfc: remove self-assignments 2014-03-15 10:18:58 -07:00
lpfc_hw4.h [SCSI] lpfc 8.3.45: Incorporated support of a low-latency io path 2014-03-15 10:18:56 -07:00
lpfc_hw.h [SCSI] lpfc 8.3.45: Incorporated support of a low-latency io path 2014-03-15 10:18:56 -07:00
lpfc_init.c [SCSI] lpfc 8.3.45: Fixed crash during driver unload. 2014-03-15 10:18:57 -07:00
lpfc_logmsg.h [SCSI] lpfc 8.3.39: Fixed BlockGuard error reporting 2013-05-02 12:38:02 -07:00
lpfc_mbox.c [SCSI] lpfc 8.3.41: Ensure driver properly zeros unused fields in SLI4 mailbox commands 2013-08-23 13:18:03 -04:00
lpfc_mem.c [SCSI] lpfc 8.3.45: Incorporated support of a low-latency io path 2014-03-15 10:18:56 -07:00
lpfc_nl.h Fix common misspellings 2011-03-31 11:26:23 -03:00
lpfc_nportdisc.c [SCSI] lpfc 8.3.44: Fix Crash in lpfc_els_timeout_handler 2014-03-15 10:18:55 -07:00
lpfc_scsi.c [SCSI] lpfc 8.3.45: Fixed missing initialization for task management IOCBs 2014-03-15 10:18:57 -07:00
lpfc_scsi.h [SCSI] lpfc 8.3.45: Incorporated support of a low-latency io path 2014-03-15 10:18:56 -07:00
lpfc_sli4.h [SCSI] lpfc 8.3.45: Fix sysfs buffer overrun in read of lpfc_fcp_cpu_map for 128 CPUs. 2014-03-15 10:18:57 -07:00
lpfc_sli.c lpfc: Add iotag memory barrier 2014-05-19 19:12:25 +02:00
lpfc_sli.h [SCSI] lpfc 8.3.45: Incorporated support of a low-latency io path 2014-03-15 10:18:56 -07:00
lpfc_version.h [SCSI] lpfc 8.3.45: Update lpfc version to driver version 8.3.45 2014-03-15 10:18:57 -07:00
lpfc_vport.c [SCSI] lpfc 8.3.41: Update copyrights for 8.3.41 modifications 2013-08-23 13:25:44 -04:00
lpfc_vport.h [SCSI] lpfc 8.3.39: Fixed VPI allocation issues after firmware dump is performed 2013-05-02 12:37:45 -07:00
lpfc.h [SCSI] lpfc 8.3.45: Incorporate changes to use reason in change_queue_depth function. 2014-03-15 10:18:56 -07:00
Makefile [SCSI] lpfc: fix problems with -Werror 2012-07-20 08:58:54 +01:00