• Arun Easi's avatar
    scsi: qla2xxx: Fix NVMe port discovery after a short device port loss · 9e744591
    Arun Easi authored
    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: default avatarArun Easi <aeasi@marvell.com>
    Signed-off-by: default avatarHimanshu Madhani <hmadhani@marvell.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    9e744591
qla_init.c 236 KB