提交 55f77c08 编写于 作者: L Luo Jiaxing 提交者: Xie XiuQi

scsi: hisi_sas: add softreset behind abort device at I_T_nexus_reset() to...

scsi: hisi_sas: add softreset behind abort device at I_T_nexus_reset() to ensure decoupling of SATA device

driver inclusion
category: bugfix
bugzilla: NA
CVE: NA

-------------------------------------------------

We found out that SATA disk can not be write but read only after
system come up. No abnormal IO have come back between init, but
when we try to write SATA disk, the IO can not return and timeout.

We notice that one if-check is remove at sas_I_T_nexus(), and it
cause internal_task_abort() will be allow to run besides error
handle, and obviously softreset_ata() did not run after this
condition, so it's clear that SATA disk is not decoupling.

Fixes: 0de2941 ("scsi: hisi_sas: remove the check of sas_dev status in function hisi_sas_I_T_nexus_reset()")
Signed-off-by: NLuo Jiaxing <luojiaxing@huawei.com>
Reviewed-by: NXiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: NJohn Garry <john.garry@huawei.com>
Reviewed-by: NXie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 3d274170
......@@ -1786,6 +1786,12 @@ static int hisi_sas_I_T_nexus_reset(struct domain_device *device)
}
hisi_sas_dereg_device(hisi_hba, device);
if (dev_is_sata(device)) {
rc = hisi_sas_softreset_ata_disk(device);
if (rc)
return TMF_RESP_FUNC_FAILED;
}
rc = hisi_sas_debug_I_T_nexus_reset(device);
if ((rc == TMF_RESP_FUNC_COMPLETE) || (rc == -ENODEV))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册