linux/drivers/scsi/lpfc
James Smart 30e196cace scsi: lpfc: Fix LOGO/PLOGI handling when triggerd by ABTS Timeout event
After a LOGO in response to an ABTS timeout, a PLOGI wasn't issued to
re-establish the login.  An nlp_type check in the LOGO completion
handler failed to restart discovery for NVME targets.  Revised the
nlp_type check for NVME as well as SCSI.

While reviewing the LOGO handling a few other issues were seen and
were addressed:

- Better lock synchronization around ndlp data types

- When the ABTS times out, unregister the RPI before sending the LOGO
  so that all local exchange contexts are cleared and nothing received
  while awaiting LOGO/PLOGI handling will be accepted.

- LOGO handling optimized to:
   Wait only R_A_TOV for a response.
   It doesn't need to be retried on timeout. If there wasn't a
     response, a PLOGI will be sent, thus an implicit logout
     applies as well when the other port sees it.
   If there is a response, any kind of response is considered "good"
     and the XRI quarantined for a exchange qualifier window.

- PLOGI is issued as soon a LOGO state is resolved.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-11-06 20:42:50 -05:00
..
lpfc_attr.c SCSI misc on 20181024 2018-10-25 07:40:30 -07:00
lpfc_attr.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_bsg.c scsi: lpfc: remove a bogus pci_dma_sync_single_for_device call 2018-10-15 22:41:00 -04:00
lpfc_bsg.h scsi: lpfc: add support to retrieve firmware logs 2018-09-11 20:37:33 -04:00
lpfc_compat.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_crtn.h scsi: lpfc: add support to retrieve firmware logs 2018-09-11 20:37:33 -04:00
lpfc_ct.c scsi: lpfc: Correct irq handling via locks when taking adapter offline 2018-09-11 20:37:33 -04:00
lpfc_debugfs.c SCSI misc on 20181024 2018-10-25 07:40:30 -07:00
lpfc_debugfs.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_disc.h scsi: lpfc: Limit tracking of tgt queue depth in fast path 2018-08-02 15:45:19 -04:00
lpfc_els.c scsi: lpfc: Fix LOGO/PLOGI handling when triggerd by ABTS Timeout event 2018-11-06 20:42:50 -05:00
lpfc_hbadisc.c scsi: lpfc: Remove set but not used variable 'psli' 2018-10-16 21:46:46 -04:00
lpfc_hw4.h scsi: lpfc: add support to retrieve firmware logs 2018-09-11 20:37:33 -04:00
lpfc_hw.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_ids.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_init.c scsi: lpfc: Fix lpfc_sli4_read_config return value check 2018-11-06 20:42:50 -05:00
lpfc_logmsg.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_mbox.c scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_mem.c scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_nl.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_nportdisc.c scsi: lpfc: Fix LOGO/PLOGI handling when triggerd by ABTS Timeout event 2018-11-06 20:42:50 -05:00
lpfc_nvme.c SCSI misc on 20181024 2018-10-25 07:40:30 -07:00
lpfc_nvme.h scsi: lpfc: Limit tracking of tgt queue depth in fast path 2018-08-02 15:45:19 -04:00
lpfc_nvmet.c scsi: lpfc: Fix errors in log messages. 2018-09-11 20:37:33 -04:00
lpfc_nvmet.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_scsi.c scsi: lpfc: reduce locking when updating statistics 2018-09-11 20:37:33 -04:00
lpfc_scsi.h scsi: lpfc: Limit tracking of tgt queue depth in fast path 2018-08-02 15:45:19 -04:00
lpfc_sli4.h scsi: lpfc: add support to retrieve firmware logs 2018-09-11 20:37:33 -04:00
lpfc_sli.c scsi: lpfc: Remove set but not used variables 'fc_hdr' and 'hw_page_size' 2018-10-16 21:23:55 -04:00
lpfc_sli.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_version.h scsi: lpfc: update driver version to 12.0.0.7 2018-09-11 20:37:34 -04:00
lpfc_vport.c scsi: lpfc: Correct irq handling via locks when taking adapter offline 2018-09-11 20:37:33 -04:00
lpfc_vport.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc.h SCSI misc on 20181024 2018-10-25 07:40:30 -07:00
Makefile scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00