linux_dsm_epyc7002/drivers/scsi/qla2xxx
Arun Easi 9e744591ef scsi: qla2xxx: Fix NVMe port discovery after a short device port loss
The following sequence of event leads to NVME port disappearing:

    - device port shut
    - nvme_fc_unregister_remoteport
    - device port online
    - remote port delete completes
    - relogin is scheduled
    - "post gidpn" message appears due to rscn generation # mismatch

In short, if a device comes back online sooner than an unregister
completion, a mismatch in rscn generation number occurs, which is not
handled correctly during device relogin. Fix this by starting with a redo
of GNL.

When ql2xextended_error_logging is enabled, the re-plugged device's
discovery stops with the following messages printed:

--8<--
qla2xxx [0000:41:00.0]-480d:3: Relogin scheduled.
qla2xxx [0000:41:00.0]-4800:3: DPC handler sleeping.
qla2xxx [0000:41:00.0]-2902:3: qla24xx_handle_relogin_event 21:00:00:24:ff:17:9e:91 DS 0 LS 7 P 0 del 2 cnfl
   (null) rscn 1|2 login 1|2 fl 1
qla2xxx [0000:41:00.0]-28e9:3: qla24xx_handle_relogin_event 1666 21:00:00:24:ff:17:9e:91 post gidpn
qla2xxx [0000:41:00.0]-480e:3: Relogin end.
--8<--

Signed-off-by: Arun Easi <aeasi@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2019-08-07 18:08:12 -04:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qla_attr.c scsi: qla2xxx: Replace vmalloc + memset with vzalloc 2019-07-30 12:20:38 -04:00
qla_bsg.c scsi: qla2xxx: Fix DMA unmap leak 2019-07-30 16:12:01 -04:00
qla_bsg.h scsi: qla2xxx: Add 28xx flash primary/secondary status/image mechanism 2019-03-19 12:22:55 -04:00
qla_dbg.c scsi: qla2xxx: Insert spaces where required 2019-04-15 22:04:40 -04:00
qla_dbg.h scsi: qla2xxx: Cleanups for NVRAM/Flash read/write path 2019-03-19 12:22:54 -04:00
qla_def.h scsi: qla2xxx: Fix premature timer expiration 2019-08-07 18:08:12 -04:00
qla_devtbl.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qla_dfs.c scsi: qla2xxx: Leave a blank line after declarations 2019-04-15 22:04:39 -04:00
qla_dsd.h scsi: qla2xxx: Introduce the dsd32 and dsd64 data structures 2019-04-29 17:24:51 -04:00
qla_fw.h scsi: qla2xxx: Use __le64 instead of uint32_t[2] for sending DMA addresses to firmware 2019-04-29 17:24:51 -04:00
qla_gbl.h scsi: qla2xxx: move IO flush to the front of NVME rport unregistration 2019-06-27 00:10:55 -04:00
qla_gs.c scsi: qla2xxx: Retry fabric Scan on IOCB queue full 2019-08-07 18:08:12 -04:00
qla_init.c scsi: qla2xxx: Fix NVMe port discovery after a short device port loss 2019-08-07 18:08:12 -04:00
qla_inline.h scsi: qla2xxx: Uninline qla2x00_init_timer() 2019-04-29 17:24:49 -04:00
qla_iocb.c scsi: qla2xxx: Fix premature timer expiration 2019-08-07 18:08:12 -04:00
qla_isr.c scsi: qla2xxx: Skip FW dump on LOOP initialization error 2019-07-30 16:12:02 -04:00
qla_mbx.c scsi: qla2xxx: Log the status code if a firmware command fails 2019-04-29 17:24:49 -04:00
qla_mid.c scsi: qla2xxx: Use an on-stack completion in qla24xx_control_vp() 2019-04-29 17:24:51 -04:00
qla_mr.c scsi: qla2xxx: Use __le64 instead of uint32_t[2] for sending DMA addresses to firmware 2019-04-29 17:24:51 -04:00
qla_mr.h scsi: qla2xxx: Introduce the dsd32 and dsd64 data structures 2019-04-29 17:24:51 -04:00
qla_nvme.c scsi: qla2xxx: move IO flush to the front of NVME rport unregistration 2019-06-27 00:10:55 -04:00
qla_nvme.h scsi: qla2xxx: Fix NVME cmd and LS cmd timeout race condition 2019-06-27 00:09:18 -04:00
qla_nx2.c scsi: qla2xxx: Increase the size of the mailbox arrays from 4 to 8 2019-04-29 17:24:49 -04:00
qla_nx2.h scsi: qla2xxx: Remove unused symbols 2018-02-12 11:43:24 -05:00
qla_nx.c scsi: qla2xxx: Use __le64 instead of uint32_t[2] for sending DMA addresses to firmware 2019-04-29 17:24:51 -04:00
qla_nx.h scsi: qla2xxx: Move the <linux/io-64-nonatomic-lo-hi.h> include directive 2019-04-15 22:04:40 -04:00
qla_os.c scsi: qla2xxx: Correct error handling during initialization failures 2019-08-07 18:08:12 -04:00
qla_settings.h
qla_sup.c scsi: qla2xxx: Insert spaces where required 2019-04-15 22:04:40 -04:00
qla_target.c scsi: qla2xxx: Fix Relogin to prevent modifying scan_state flag 2019-08-07 18:07:11 -04:00
qla_target.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
qla_tmpl.c scsi: qla2xxx: Simplification of register address used in qla_tmpl.c 2019-03-19 12:22:55 -04:00
qla_tmpl.h scsi: qla2xxx: Correction and improvement to fwdt processing 2019-03-19 12:22:55 -04:00
qla_version.h scsi: qla2xxx: Update driver version to 10.01.00.16-k 2019-04-03 23:45:59 -04:00
tcm_qla2xxx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
tcm_qla2xxx.h scsi: qla2xxx: deadlock by configfs_depend_item 2018-12-19 21:26:38 -05:00