diff mbox series

ufs:mcq:Fixing Error Output for ufshcd_try_to_abort_task in ufshcd_mcq_abort

Message ID 20240523002257.1068373-1-cw9316.lee@samsung.com (mailing list archive)
State Accepted
Headers show
Series ufs:mcq:Fixing Error Output for ufshcd_try_to_abort_task in ufshcd_mcq_abort | expand

Commit Message

Chanwoo Lee May 23, 2024, 12:22 a.m. UTC
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 <cw9316.lee@samsung.com>
---
 drivers/ufs/core/ufs-mcq.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Bart Van Assche May 23, 2024, 10:43 p.m. UTC | #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 <cw9316.lee@samsung.com>
> ---
>   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.
Chanwoo Lee May 23, 2024, 11:56 p.m. UTC | #2
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 <cw9316.lee@samsung.com>
>> ---
>>   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.
Bart Van Assche May 24, 2024, 12:08 a.m. UTC | #3
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.
Chanwoo Lee May 24, 2024, 12:18 a.m. UTC | #4
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.
diff mbox series

Patch

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;
 	}