An error unrelated to ufshcd_try_to_abort_task is being output and
can cause confusion. So, I modified it to output the result of abort
fail. This modification was similarly revised by referring to the
ufshcd_abort function.
Signed-off-by: Chanwoo Lee <[email protected]>
---
drivers/ufs/core/ufs-mcq.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c
index 005d63ab1f44..fc24d1af1fe8 100644
--- a/drivers/ufs/core/ufs-mcq.c
+++ b/drivers/ufs/core/ufs-mcq.c
@@ -667,9 +667,11 @@ int ufshcd_mcq_abort(struct scsi_cmnd *cmd)
* in the completion queue either. Query the device to see if
* the command is being processed in the device.
*/
- if (ufshcd_try_to_abort_task(hba, tag)) {
+ err = ufshcd_try_to_abort_task(hba, tag);
+ if (err) {
dev_err(hba->dev, "%s: device abort failed %d\n", __func__, err);
lrbp->req_abort_skip = true;
+ err = FAILED;
goto out;
}
--
2.34.1
On 5/22/24 17:22, Chanwoo Lee wrote:
> An error unrelated to ufshcd_try_to_abort_task is being output and
> can cause confusion. So, I modified it to output the result of abort
> fail. This modification was similarly revised by referring to the
> ufshcd_abort function.
>
> Signed-off-by: Chanwoo Lee <[email protected]>
> ---
> drivers/ufs/core/ufs-mcq.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c
> index 005d63ab1f44..fc24d1af1fe8 100644
> --- a/drivers/ufs/core/ufs-mcq.c
> +++ b/drivers/ufs/core/ufs-mcq.c
> @@ -667,9 +667,11 @@ int ufshcd_mcq_abort(struct scsi_cmnd *cmd)
> * in the completion queue either. Query the device to see if
> * the command is being processed in the device.
> */
> - if (ufshcd_try_to_abort_task(hba, tag)) {
> + err = ufshcd_try_to_abort_task(hba, tag);
> + if (err) {
> dev_err(hba->dev, "%s: device abort failed %d\n", __func__, err);
> lrbp->req_abort_skip = true;
> + err = FAILED;
> goto out;
> }
Why does the word "Fixing" occur in the title of this patch? I think
that this patch does not affect the value returned by
ufshcd_mcq_abort(). From the start of that function:
int err = FAILED;
Thanks,
Bart.
On 5/23/24 22:43, Bart Van Assche wrote:
>On 5/22/24 17:22, Chanwoo Lee wrote:
>> An error unrelated to ufshcd_try_to_abort_task is being output and
>> can cause confusion. So, I modified it to output the result of abort
>> fail. This modification was similarly revised by referring to the
>> ufshcd_abort function.
>>
>> Signed-off-by: Chanwoo Lee <[email protected]>
>> ---
>> drivers/ufs/core/ufs-mcq.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c
>> index 005d63ab1f44..fc24d1af1fe8 100644
>> --- a/drivers/ufs/core/ufs-mcq.c
>> +++ b/drivers/ufs/core/ufs-mcq.c
>> @@ -667,9 +667,11 @@ int ufshcd_mcq_abort(struct scsi_cmnd *cmd)
>> * in the completion queue either. Query the device to see if
>> * the command is being processed in the device.
>> */
>> - if (ufshcd_try_to_abort_task(hba, tag)) {
>> + err = ufshcd_try_to_abort_task(hba, tag);
>> + if (err) {
>> dev_err(hba->dev, "%s: device abort failed %d\n", __func__, err);
>> lrbp->req_abort_skip = true;
>> + err = FAILED;
>> goto out;
>> }
>
>Why does the word "Fixing" occur in the title of this patch? I think
>that this patch does not affect the value returned by
>ufshcd_mcq_abort(). From the start of that function:
>
>int err = FAILED;
>
>Thanks,
>
>Bart.
I thought this patch would be appropriate to "fix" the following log.
* dev_err(hba->dev, "%s: device abort failed %d\n", __func__, err);
If "Fixing" is not appropriate, could you suggest another word?
Thanks,
Chanwoo Lee.
On 5/23/24 16:56, Chanwoo Lee wrote:
> I thought this patch would be appropriate to "fix" the following log.
> * dev_err(hba->dev, "%s: device abort failed %d\n", __func__, err);
> If "Fixing" is not appropriate, could you suggest another word?
That's something I had not noticed. This is indeed a bug fix. Please add
a "Fixes:" tag as is expected for bug fixes.
BTW, I think that ufshcd_mcq_abort() can be improved significantly. How
about reworking that function as follows before the bug reported in this
patch is fixed?
- Remove the local variable 'err' (and reintroduce that variable in your
patch).
- Change all 'goto out' statements into 'return FAILED'.
- Add 'return SUCCESS' at the end.
I expect that this change will make that function easier to read and to
maintain.
Thanks,
Bart.
On 5/24/24 12:08, Bart Van Assche wrote:
>On 5/23/24 16:56, Chanwoo Lee wrote:
>> I thought this patch would be appropriate to "fix" the following log.
>> * dev_err(hba->dev, "%s: device abort failed %d\n", __func__, err);
>> If "Fixing" is not appropriate, could you suggest another word?
>
>That's something I had not noticed. This is indeed a bug fix. Please add
>a "Fixes:" tag as is expected for bug fixes.
>
>BTW, I think that ufshcd_mcq_abort() can be improved significantly. How
>about reworking that function as follows before the bug reported in this
>patch is fixed?
>- Remove the local variable 'err' (and reintroduce that variable in your
>patch).
>- Change all 'goto out' statements into 'return FAILED'.
>- Add 'return SUCCESS' at the end.
>
>I expect that this change will make that function easier to read and to
>maintain.
>
>Thanks,
>
>Bart.
Thank you for the good suggestion.
I will create a new patch and reply with v2.
Thanks,
Chanwoo Lee.