• Chad Dupuis's avatar
    scsi: qedf: Add more defensive checks for concurrent error conditions · f3690a89
    Chad Dupuis authored
    During an uplink toggle test all error handling is done via timeout and
    firmware error conditions which can occur concurrently:
    
     - SCSI layer timeouts
     - Error detect CQEs
     - Firmware detected underruns
     - ABTS timeouts
    
    All these concurrent events require more defensive checks in the driver
    including:
    
     - Check both internally and externally generated aborts to make sure the
       xid is not already been aborted in another context or in cleanup.
    
     - Check back pointers in qedf_cmd_timeout to verify the context of the
       io_req, fcport and qedf_ctx
    
     - Check rport state in host reset handler to not reset the whole host
       if the rport is already uploaded or in the process of relogin
    
     - Check to state for an fcport before initiating a middle path ELS
       request
    Signed-off-by: default avatarChad Dupuis <chad.dupuis@cavium.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    f3690a89
qedf_els.c 25.8 KB