• Xiaofei Tan's avatar
    scsi: hisi_sas: judge result of internal abort · 813709f2
    Xiaofei Tan authored
    Normally, hardware should ensure that internal abort timeout will never
    happen. If happen, it would be an SoC failure. What's more, HW will not
    process any other commands if an internal abort hasn't return CQ, and they
    will time out also.
    
    So, we should judge the result of internal abort in SCSI EH, if it is failed,
    we should give up to do TMF/softreset and return failure to the upper layer
    directly.
    
    This patch do following things to achieve this:
    
    1. When internal abort timeout happened, we set return value to -EIO in
       hisi_sas_internal_task_abort().
    
    2. If prep_abort() is not support, let hisi_sas_internal_task_abort() return
       TMF_RESP_FUNC_FAILED.
    
    3. If hisi_sas_internal_task_abort() return an negative number, it can be
       thought that it not executed properly or internal abort timeout. Then we
       won't do behind TMF or softreset, and return failure directly.
    Signed-off-by: default avatarXiaofei Tan <tanxiaofei@huawei.com>
    Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    813709f2
hisi_sas_main.c 56.9 KB