linux_dsm_epyc7002/drivers/scsi/lpfc
James Smart 91455b8509 scsi: lpfc: Fix IO failure during hba reset testing with nvme io.
A stress test repeatedly resetting the adapter while performing io would
eventually report I/O failures and missing nvme namespaces.

The driver was setting the nvmefc_fcp_req->private pointer to NULL
during the IO completion routine before upcalling done().  If the
transport was also running an abort for that IO, the driver would fail
the abort with message 6140. Failing the abort is not allowed by the
nvme-fc transport, as it mandates that the io must be returned back to
the transport. As that does not happen, the transport controller delete
has an outstanding reference and can't complete teardown.

The NULL-ing of the private pointer should be done only when the io is
considered complete. It's complete when the adapter returns the exchange
with the "exchange busy" flag clear.

Move the NULL'ing of the structure to the done case. This leaves the io
contexts set while it is busy and until the subsequent XRI_ABORTED
completion which returns the exchange is received.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-02-12 11:43:23 -05:00
..
lpfc_attr.c Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
lpfc_attr.h scsi: lpfc: Add Buffer to Buffer credit recovery support 2017-08-24 22:29:43 -04:00
lpfc_bsg.c scsi: lpfc: Fix crash receiving ELS while detaching driver 2017-10-02 22:46:33 -04:00
lpfc_bsg.h
lpfc_compat.h
lpfc_crtn.h scsi: lpfc: Add WQ Full Logic for NVME Target 2018-02-12 11:43:23 -05:00
lpfc_ct.c scsi: lpfc: Fix SCSI LUN discovery when SCSI and NVME enabled 2017-12-20 21:11:46 -05:00
lpfc_debugfs.c scsi: lpfc: Beef up stat counters for debug 2017-12-20 21:11:48 -05:00
lpfc_debugfs.h scsi: lpfc: avoid false-positive gcc-8 warning 2017-08-25 18:26:52 -04:00
lpfc_disc.h scsi: lpfc: Correct driver deregistrations with host nvme transport 2017-12-04 20:32:54 -05:00
lpfc_els.c scsi: lpfc: fix a couple of minor indentation issues 2018-01-03 22:53:46 -05:00
lpfc_hbadisc.c scsi: lpfc: correct port registrations with nvme_fc 2017-12-04 20:32:54 -05:00
lpfc_hw4.h scsi: lpfc: Increase CQ and WQ sizes for SCSI 2018-02-12 11:43:22 -05:00
lpfc_hw.h scsi: lpfc: Add Buffer to Buffer credit recovery support 2017-08-24 22:29:43 -04:00
lpfc_ids.h
lpfc_init.c scsi: lpfc: move placement of target destroy on driver detach 2018-02-12 11:43:22 -05:00
lpfc_logmsg.h
lpfc_mbox.c scsi: lpfc: Fix PRLI handling when topology type changes 2018-02-12 11:43:23 -05:00
lpfc_mem.c scsi: lpfc: Use after free in lpfc_rq_buf_free() 2017-11-28 23:46:06 -05:00
lpfc_nl.h
lpfc_nportdisc.c scsi: lpfc: Fix issues connecting with nvme initiator 2017-12-20 21:11:47 -05:00
lpfc_nvme.c scsi: lpfc: Fix IO failure during hba reset testing with nvme io. 2018-02-12 11:43:23 -05:00
lpfc_nvme.h scsi: lpfc: Beef up stat counters for debug 2017-12-20 21:11:48 -05:00
lpfc_nvmet.c scsi: lpfc: Add WQ Full Logic for NVME Target 2018-02-12 11:43:23 -05:00
lpfc_nvmet.h scsi: lpfc: Add WQ Full Logic for NVME Target 2018-02-12 11:43:23 -05:00
lpfc_scsi.c scsi: lpfc: Convert timers to use timer_setup() 2017-11-01 11:27:07 -07:00
lpfc_scsi.h
lpfc_sli4.h scsi: lpfc: Add WQ Full Logic for NVME Target 2018-02-12 11:43:23 -05:00
lpfc_sli.c scsi: lpfc: Add WQ Full Logic for NVME Target 2018-02-12 11:43:23 -05:00
lpfc_sli.h scsi: lpfc: Add auto EQ delay logic 2017-06-12 21:37:31 -04:00
lpfc_version.h scsi: lpfc: update driver version to 11.4.0.6 2017-12-20 21:11:48 -05:00
lpfc_vport.c scsi: lpfc: Disable NPIV support if NVME is enabled 2017-10-02 22:46:39 -04:00
lpfc_vport.h
lpfc.h scsi: lpfc: Increase CQ and WQ sizes for SCSI 2018-02-12 11:43:22 -05:00
Makefile