mirror of
https://github.com/SCST-project/scst.git
synced 2026-08-18 13:16:34 +00:00
qla2x00t-32gbit: 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<--
[ commit 9e744591ef1b8df27c25c68dac858dada8688f77 upstream ]
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8533 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -1686,6 +1686,7 @@ void qla24xx_handle_relogin_event(scsi_qla_host_t *vha,
|
||||
ql_dbg(ql_dbg_disc, vha, 0x20e9, "%s %d %s post gidpn\n",
|
||||
__func__, __LINE__, wwn_to_str(fcport->port_name));
|
||||
|
||||
qla24xx_post_gnl_work(vha, fcport);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user