diff options
author | James Smart <jsmart2021@gmail.com> | 2018-10-23 13:41:03 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-02-12 19:46:58 +0100 |
commit | 433f2f810291c39dfd29364dae236fac8b1e72b5 (patch) | |
tree | 5ed5cc8a56e6678df1028b852784ec0f44fcbc3f /arch/arm/kernel | |
parent | 83430596d497eaf7ecb431dc6105e9299f4acf0a (diff) | |
download | linux-stable-433f2f810291c39dfd29364dae236fac8b1e72b5.tar.gz linux-stable-433f2f810291c39dfd29364dae236fac8b1e72b5.tar.bz2 linux-stable-433f2f810291c39dfd29364dae236fac8b1e72b5.zip |
scsi: lpfc: Fix LOGO/PLOGI handling when triggerd by ABTS Timeout event
[ Upstream commit 30e196cacefdd9a38c857caed23cefc9621bc5c1 ]
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'arch/arm/kernel')
0 files changed, 0 insertions, 0 deletions