On 9/19/24 7:02 PM, Peter Wang (王信友) wrote:
On Thu, 2024-09-19 at 11:49 -0700, Bart Van Assche wrote:
For legacy and MCQ mode, I prefer the following behavior for
ufshcd_abort_all():
* ufshcd_compl_one_cqe() ignores commands with status OCS_ABORTED.
* ufshcd_release_scsi_cmd() is called either by ufshcd_abort_one() or
by ufshcd_abort_all().
Do you agree with making the changes proposed above?
This might not work, as SDB mode doesn't ignore
OCS: INVALID_OCS_VALUE but rather notifies SCSI to requeue.
cmd->result should be ignored for aborted commands. Hence,
how OCS_INVALID_COMMAND_STATUS is translated by
ufshcd_transfer_rsp_status() is not relevant for aborted commands.
So what we need to correct is to notify SCSI to requeue
when MCQ mode receives OCS: ABORTED as well.
Unless the host controller violates the UFSHCI specification, the
command status is not set for aborted commands in legacy mode. Let's
keep the code uniform for legacy mode, MCQ mode, compliant and non-
ompliant controllers and not rely on the command status for aborted
commands.
Thanks,
Bart.