Skip to content
Snippets Groups Projects
  • Xingui Yang's avatar
    scsi: hisi_sas: Modify v3 HW ATA completion process when SATA disk is in error status · 63c0c05a
    Xingui Yang authored
    driver inclusion
    category: bugfix
    bugzilla: https://gitee.com/openeuler/kernel/issues/I5Q63H
    
    
    CVE: NA
    
    -------------------------------------
    
    When an NCQ error occurs, SAS controller will abnormally complete the I/Os
    that newly delivered to disk, and bit8 in CQ dw3 will be set to 1 to
    indicate current SATA disk is in error status. The current processing flow
    is set ts->stat to SAS_OPEN_REJECT and then sas_ata_task_done() will set
    fis stat to ATA_ERR. After analyzed by ata_eh_analyze_tf(), err_mask will
    set to AC_ERR_HSM. If media error occurs for four times within 10 minutes
    and the chip rejects new I/Os for four times, NCQ will be disabled due to
    excessive errors.
    
    However, if media error occurs multiple times, the NCQ mode shouldn't be
    disabled. Therefore, use sas_task_abort() to handle abnormally completed
    I/Os when SATA disk is in error status.
    
    [10253.397429] hisi_sas_v3_hw 0000:b4:02.0: erroneous completion disk err dev id=2 sas_addr=0x5000000000000605 CQ hdr: 0x400903 0x2007f 0x0 0x80470000
    [10253.397430] hisi_sas_v3_hw 0000:b4:02.0: erroneous completion iptt=135 task= pK-error dev id=2 sas_addr=0x5000000000000605 CQ hdr: 0x203 0x20087 0x0 0x100 Error info: 0x0 0x0 0x0 0x0
    [10253.397432] hisi_sas_v3_hw 0000:b4:02.0: erroneous completion iptt=136 task= pK-error dev id=2 sas_addr=0x5000000000000605 CQ hdr: 0x203 0x20088 0x0 0x100 Error info: 0x0 0x0 0x0 0x0
    
    Signed-off-by: default avatarXingui Yang <yangxingui@huawei.com>
    Reviewed-by: default avatarkang fenglong <kangfenglong@huawei.com>
    Signed-off-by: default avatarYongqiang Liu <liuyongqiang13@huawei.com>
    63c0c05a