linux/drivers/scsi/lpfc
James Smart b04744ce52 scsi: lpfc: Fix driver not recovering NVME rports during target link faults
During target-side port faults, the driver would not recover all target
port logins. This resulted in a loss of nvme device discovery.

The driver is coded to wait for all GID_FT requests to complete before
restarting discovery. A fault is seen where the outstanding GIT_FT
counts are not properly decremented, thus discovery would never
start. Another fault was found in the clearing of the gidft_inp counter
that would be skipped in this condition. And a third fault found with
lpfc_nvme_register_port that would remove a reverence on the ndlp which
then allows a node swap on a port address change to prematurely remove
the reference and release the ndlp.

The following changes are made:

 - Correct the decrementing of the outstanding GID_FT counters.

 - In RSCN handling, no longer zero the counter before calling to issue
   another GID_FT.

 - No longer remove the reference on the dlp when the ndlp->nrport value
   is not yet null.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-04-18 19:34:05 -04:00
..
lpfc_attr.c scsi: lpfc: Fix NULL pointer access in lpfc_nvme_info_show 2018-04-18 19:34:04 -04: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: Change Copyright of 12.0.0.0 modified files to 2018 2018-02-22 20:39:30 -05:00
lpfc_bsg.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_compat.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_crtn.h scsi: lpfc: Streamline NVME Targe6t WQE setup 2018-03-12 21:55:23 -04:00
lpfc_ct.c scsi: lpfc: Fix driver not recovering NVME rports during target link faults 2018-04-18 19:34:05 -04:00
lpfc_debugfs.c scsi: lpfc: Fix NULL pointer access in lpfc_nvme_info_show 2018-04-18 19:34:04 -04:00
lpfc_debugfs.h scsi: lpfc: Change Copyright of 12.0.0.0 modified files to 2018 2018-02-22 20:39:30 -05: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 driver not recovering NVME rports during target link faults 2018-04-18 19:34:05 -04:00
lpfc_hbadisc.c scsi: lpfc: Fix SCSI lun discovery when port configured for both SCSI and NVME 2018-03-12 21:55:23 -04:00
lpfc_hw4.h scsi: lpfc: Fix WQ/CQ creation for older asic's. 2018-04-18 19:34:04 -04:00
lpfc_hw.h scsi: lpfc: Change Copyright of 12.0.0.0 modified files to 2018 2018-02-22 20:39:30 -05:00
lpfc_ids.h scsi: lpfc: Change Copyright of 12.0.0.0 modified files to 2018 2018-02-22 20:39:30 -05:00
lpfc_init.c scsi: lpfc: Fix WQ/CQ creation for older asic's. 2018-04-18 19:34:04 -04:00
lpfc_logmsg.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_mbox.c scsi: lpfc: Add 64G link speed support 2018-02-22 20:39:29 -05:00
lpfc_mem.c scsi: lpfc: Update 11.4.0.7 modified files for 2018 Copyright 2018-02-12 11:43:24 -05:00
lpfc_nl.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_nportdisc.c scsi: lpfc: Fix multiple PRLI completion error path 2018-04-18 19:34:00 -04:00
lpfc_nvme.c scsi: lpfc: Fix driver not recovering NVME rports during target link faults 2018-04-18 19:34:05 -04:00
lpfc_nvme.h scsi: lpfc: Fix NULL pointer access in lpfc_nvme_info_show 2018-04-18 19:34:04 -04:00
lpfc_nvmet.c scsi: lpfc: make several unions static, fix non-ANSI prototype 2018-03-14 23:36:37 -04:00
lpfc_nvmet.h scsi: lpfc: Enlarge nvmet asynchronous receive buffer counts 2018-04-18 19:34:02 -04:00
lpfc_scsi.c scsi: lpfc: Fix Abort request WQ selection 2018-04-18 19:34:02 -04:00
lpfc_scsi.h scsi: lpfc: Change Copyright of 12.0.0.1 modified files to 2018 2018-03-12 21:55:24 -04:00
lpfc_sli4.h scsi: lpfc: Fix WQ/CQ creation for older asic's. 2018-04-18 19:34:04 -04:00
lpfc_sli.c scsi: lpfc: Fix Abort request WQ selection 2018-04-18 19:34:02 -04:00
lpfc_sli.h scsi: lpfc: Fix mailbox wait for POST_SGL mbox command 2018-03-12 21:55:24 -04:00
lpfc_version.h scsi: lpfc: update driver version to 12.0.0.1 2018-03-12 21:55:24 -04:00
lpfc_vport.c scsi: lpfc: Disable NPIV support if NVME is enabled 2017-10-02 22:46:39 -04:00
lpfc_vport.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc.h scsi: lpfc: Enlarge nvmet asynchronous receive buffer counts 2018-04-18 19:34:02 -04:00
Makefile scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00