scsi: ufs: core: Fix ufshcd_is_ufs_dev_busy() and ufshcd_eh_timed_out()
ufshcd_is_ufs_dev_busy(), ufshcd_print_host_state() and
ufshcd_eh_timed_out() are used in both modes (legacy mode and MCQ mode).
hba->outstanding_reqs only represents the outstanding requests in legacy
mode. Hence, change hba->outstanding_reqs into scsi_host_busy(hba->host) in
these functions.
Fixes: eacb139b77
("scsi: ufs: core: mcq: Enable multi-circular queue")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20250214224352.3025151-1-bvanassche@acm.org
Reviewed-by: Peter Wang <peter.wang@mediatek.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
5233e3235d
commit
4fa382be43
1 changed files with 4 additions and 4 deletions
|
@ -266,7 +266,7 @@ static bool ufshcd_has_pending_tasks(struct ufs_hba *hba)
|
||||||
|
|
||||||
static bool ufshcd_is_ufs_dev_busy(struct ufs_hba *hba)
|
static bool ufshcd_is_ufs_dev_busy(struct ufs_hba *hba)
|
||||||
{
|
{
|
||||||
return hba->outstanding_reqs || ufshcd_has_pending_tasks(hba);
|
return scsi_host_busy(hba->host) || ufshcd_has_pending_tasks(hba);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct ufs_dev_quirk ufs_fixups[] = {
|
static const struct ufs_dev_quirk ufs_fixups[] = {
|
||||||
|
@ -628,8 +628,8 @@ static void ufshcd_print_host_state(struct ufs_hba *hba)
|
||||||
const struct scsi_device *sdev_ufs = hba->ufs_device_wlun;
|
const struct scsi_device *sdev_ufs = hba->ufs_device_wlun;
|
||||||
|
|
||||||
dev_err(hba->dev, "UFS Host state=%d\n", hba->ufshcd_state);
|
dev_err(hba->dev, "UFS Host state=%d\n", hba->ufshcd_state);
|
||||||
dev_err(hba->dev, "outstanding reqs=0x%lx tasks=0x%lx\n",
|
dev_err(hba->dev, "%d outstanding reqs, tasks=0x%lx\n",
|
||||||
hba->outstanding_reqs, hba->outstanding_tasks);
|
scsi_host_busy(hba->host), hba->outstanding_tasks);
|
||||||
dev_err(hba->dev, "saved_err=0x%x, saved_uic_err=0x%x\n",
|
dev_err(hba->dev, "saved_err=0x%x, saved_uic_err=0x%x\n",
|
||||||
hba->saved_err, hba->saved_uic_err);
|
hba->saved_err, hba->saved_uic_err);
|
||||||
dev_err(hba->dev, "Device power mode=%d, UIC link state=%d\n",
|
dev_err(hba->dev, "Device power mode=%d, UIC link state=%d\n",
|
||||||
|
@ -8882,7 +8882,7 @@ static enum scsi_timeout_action ufshcd_eh_timed_out(struct scsi_cmnd *scmd)
|
||||||
dev_info(hba->dev, "%s() finished; outstanding_tasks = %#lx.\n",
|
dev_info(hba->dev, "%s() finished; outstanding_tasks = %#lx.\n",
|
||||||
__func__, hba->outstanding_tasks);
|
__func__, hba->outstanding_tasks);
|
||||||
|
|
||||||
return hba->outstanding_reqs ? SCSI_EH_RESET_TIMER : SCSI_EH_DONE;
|
return scsi_host_busy(hba->host) ? SCSI_EH_RESET_TIMER : SCSI_EH_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct attribute_group *ufshcd_driver_groups[] = {
|
static const struct attribute_group *ufshcd_driver_groups[] = {
|
||||||
|
|
Loading…
Add table
Reference in a new issue