From: Can Guo <cang@codeaurora.org>
To: Bart Van Assche <bvanassche@acm.org>
Cc: jaegeuk@kernel.org, asutoshd@codeaurora.org,
nguyenb@codeaurora.org, hongwus@codeaurora.org,
linux-scsi@vger.kernel.org, kernel-team@android.com,
Alim Akhtar <alim.akhtar@samsung.com>,
Avri Altman <avri.altman@wdc.com>,
"James E.J. Bottomley" <jejb@linux.ibm.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Stanley Chu <stanley.chu@mediatek.com>,
Bean Huo <beanhuo@micron.com>,
Sujit Reddy Thumma <sthumma@codeaurora.org>,
Vinayak Holikatti <vinholikatti@gmail.com>,
Yaniv Gardi <ygardi@codeaurora.org>,
open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 3/3] scsi: ufs: Fix wrong Task Tag used in task management request UPIUs
Date: Fri, 05 Feb 2021 14:09:54 +0800 [thread overview]
Message-ID: <cf50ecf7a245674f8aee917455a7ccfa@codeaurora.org> (raw)
In-Reply-To: <cd83aa1d-444e-d4ba-c363-517dbf07891a@acm.org>
On 2021-02-01 10:39, Bart Van Assche wrote:
> On 1/28/21 9:57 PM, Can Guo wrote:
>> On 2021-01-29 11:15, Bart Van Assche wrote:
>>> On 1/27/21 8:16 PM, Can Guo wrote:
>>>> In __ufshcd_issue_tm_cmd(), it is not right to use hba->nutrs +
>>>> req->tag as
>>>> the Task Tag in one TMR UPIU. Directly use req->tag as the Task Tag.
>>>
>>> Why is the current code wrong and why is this patch the proper fix?
>>> Please explain this in the patch description.
>>
>> req->tag is the tag allocated for one TMR, no?
>
> Hi Can,
> Commit e293313262d3 ("scsi: ufs: Fix broken task management command
> implementation") includes the following changes:
>
> + task_tag = hba->nutrs + free_slot;
> task_req_upiup->header.dword_0 =
> UPIU_HEADER_DWORD(UPIU_TRANSACTION_TASK_REQ, 0,
> - lrbp->lun,
> lrbp->task_tag);
> + lun_id, task_tag);
> task_req_upiup->header.dword_1 =
> UPIU_HEADER_DWORD(0, tm_function, 0, 0);
>
> As one can see the value written in dword_0 starts at hba->nutrs. Was
> that code correct? If that code was correct, does your patch perhaps
> break task management support?
That code is wrong. The Task Tag in Dword_0 should be the real tag we
allocated for TMR. The transfer request Task Tag which we are trying to
abort is given in Dword_5, which is the Input Parameter 3 of the TMR
UPIU.
I am not sure why the author gave hba->nutrs + req->tag as the Task Tag
of one TMR, the commit msg abot this part is not quite informative....
Table 10.22 — Task Management Request UPIU
TASK MANAGEMENT REQUEST UPIU
----------------------------------
|0 |1 |2 |3 |
----------------------------------
|xx00 0100b| Flags |LUN |Task Tag|
----------------------------------
...
16 (MSB) |17 |18 |19 (LSB)|
----------------------------------
Input Parameter 2
----------------------------------
Table 10.24 — Task Management Input Parameters
Field Description
Input Parameter 2 LSB: Task Tag of the task/command operated by the task
management function.
Thanks,
Can Guo.
>
> Thanks,
>
> Bart.
next prev parent reply other threads:[~2021-02-05 6:11 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-28 4:16 [PATCH v3 0/3] Three fixes for task management request implementation Can Guo
2021-01-28 4:16 ` [PATCH v3 1/3] scsi: ufs: Fix task management request completion timeout Can Guo
2021-01-29 3:22 ` Bart Van Assche
2021-01-29 5:46 ` Can Guo
2021-01-28 4:16 ` [PATCH v3 2/3] scsi: ufs: Fix a race condition btw task management request send and compl Can Guo
2021-01-29 3:20 ` Bart Van Assche
2021-01-29 6:06 ` Can Guo
2021-01-29 6:29 ` Can Guo
2021-02-01 2:27 ` Bart Van Assche
2021-01-28 4:16 ` [PATCH v3 3/3] scsi: ufs: Fix wrong Task Tag used in task management request UPIUs Can Guo
2021-01-29 3:15 ` Bart Van Assche
2021-01-29 5:57 ` Can Guo
2021-02-01 2:39 ` Bart Van Assche
2021-02-05 6:09 ` Can Guo [this message]
2021-02-07 2:50 ` Bart Van Assche
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cf50ecf7a245674f8aee917455a7ccfa@codeaurora.org \
--to=cang@codeaurora.org \
--cc=alim.akhtar@samsung.com \
--cc=asutoshd@codeaurora.org \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=hongwus@codeaurora.org \
--cc=jaegeuk@kernel.org \
--cc=jejb@linux.ibm.com \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=nguyenb@codeaurora.org \
--cc=stanley.chu@mediatek.com \
--cc=sthumma@codeaurora.org \
--cc=vinholikatti@gmail.com \
--cc=ygardi@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.