scsi: hisi_sas: Modify the deadline for ata_wait_after_reset()

driver inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I96KNQ
CVE: NA

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

We found that the second parameter of function ata_wait_after_reset() is
incorrectly used. We call smp_ata_check_ready_type() to poll the device
type until the 30s timeout, so the correct deadline should be (jiffies +
30000).

Fixes: 3c2673a09c ("scsi: hisi_sas: Fix SATA devices missing issue during I_T nexus reset")
Signed-off-by: xiabing <xiabing12@h-partners.com>
Signed-off-by: Yihang Li <liyihang9@huawei.com>
Reviewed-by: Xiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: Bing Xia <xiabing12@h-partners.com>
Signed-off-by: chenyi <chenyi211@huawei.com>
This commit is contained in:
Yihang Li 2024-04-10 09:56:38 +08:00 committed by chenyi
parent 2bf5a747a0
commit f69b22de11
1 changed files with 3 additions and 1 deletions

View File

@ -1915,8 +1915,10 @@ static int hisi_sas_debug_I_T_nexus_reset(struct domain_device *device)
if (dev_is_sata(device)) { if (dev_is_sata(device)) {
struct ata_link *link = &device->sata_dev.ap->link; struct ata_link *link = &device->sata_dev.ap->link;
unsigned long deadline = ata_deadline(jiffies,
HISI_SAS_WAIT_PHYUP_TIMEOUT / HZ * 1000);
rc = ata_wait_after_reset(link, HISI_SAS_WAIT_PHYUP_TIMEOUT, rc = ata_wait_after_reset(link, deadline,
smp_ata_check_ready_type); smp_ata_check_ready_type);
} else { } else {
msleep(2000); msleep(2000);