• Vasu Dev's avatar
    [SCSI] libfc: fix fc_eh_host_reset · 77a2b73a
    Vasu Dev authored
    Current fc_eh_host_reset leaves lport offline
    permanently  due to FLOGI response getting
    handled by LOGO response from last reset as both
    had same exchange id.
    
    So fix this by having end to end exches clean-up
    using exchange abort along exches reset
    done from fc_eh_host_reset. This would avoid
    exchanges collision between the sessions across
    the reset. In this case implicit login should have
    done that but no aborting support for FIP
    frames, so just wait till lport->r_a_tov before
    restarting next flogi to ensure all exchanges
    are good to use again for next session.
    
    Below is the trace of LOGO from older session
    coming ahead of FLOGI response with same exche id
    0x203:-
    
    617  86.435165     4e.00.0b -> ff.ff.fc     FC ELS LOGO 0x203
    618  86.435195     4e.00.0b -> b6.02.00     FC ELS LOGO 0x213
    619  86.435220     4e.00.0b -> 18.03.00     FC ELS LOGO 0x223
    620  86.435244     4e.00.0b -> 18.02.00     FC ELS LOGO 0x233
    621  86.435267     4e.00.0b -> 18.01.00     FC ELS LOGO 0x243
    622  86.435349     00.00.00 -> ff.ff.fe     FC ELS FLOGI 0x203
    623  86.435549     ff.ff.fc -> 4e.00.0b     FC ELS ACC (LOGO) 0x203
    624  86.438721     ff.ff.fe -> 4e.00.0b     FC ELS ACC (FLOGI) 0x203
    625  86.442059     18.03.00 -> 4e.00.0b     FC ELS ACC (LOGO) 0x223
    626  86.443683     b6.02.00 -> 4e.00.0b     FC ELS ACC (LOGO) 0x213
    627  86.447693     18.01.00 -> 4e.00.0b     FC ELS ACC (LOGO) 0x243
    628  86.453499     18.02.00 -> 4e.00.0b     FC ELS ACC (LOGO) 0x233
    Signed-off-by: default avatarVasu Dev <vasu.dev@intel.com>
    Tested-by: default avatarRoss Brattain <ross.b.brattain@intel.com>
    Reviewed-by: default avatarYi Zou <yi.zou@intel.com>
    Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
    Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
    77a2b73a
fc_lport.c 50.2 KB