All of lore.kernel.org
 help / color / mirror / Atom feed
From: Can Guo <cang@codeaurora.org>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Avri Altman <Avri.Altman@wdc.com>,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	"James E . J . Bottomley" <jejb@linux.ibm.com>,
	linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
	Alim Akhtar <alim.akhtar@samsung.com>,
	Bean Huo <huobean@gmail.com>,
	Asutosh Das <asutoshd@codeaurora.org>,
	Stanley Chu <stanley.chu@mediatek.com>
Subject: Re: [PATCH] scsi: ufs: Fix incorrect ufshcd_state after ufshcd_reset_and_restore()
Date: Wed, 03 Mar 2021 18:19:17 +0800	[thread overview]
Message-ID: <80301bea84b7349ca9dbdcc4f2c9a744@codeaurora.org> (raw)
In-Reply-To: <5fe97f16-406c-c279-b108-d27bb2769ed6@intel.com>

On 2021-03-02 16:14, Adrian Hunter wrote:
> On 2/03/21 9:01 am, Avri Altman wrote:
>> 
>>> If ufshcd_probe_hba() fails it sets ufshcd_state to 
>>> UFSHCD_STATE_ERROR,
>>> however, if it is called again, as it is within a loop in
>>> ufshcd_reset_and_restore(), and succeeds, then it will not set the 
>>> state
>>> back to UFSHCD_STATE_OPERATIONAL unless the state was
>>> UFSHCD_STATE_RESET.
>>> 
>>> That can result in the state being UFSHCD_STATE_ERROR even though
>>> ufshcd_reset_and_restore() is successful and returns zero.
>>> 
>>> Fix by initializing the state to UFSHCD_STATE_RESET in the start of 
>>> each
>>> loop in ufshcd_reset_and_restore().  If there is an error,
>>> ufshcd_reset_and_restore() will change the state to 
>>> UFSHCD_STATE_ERROR,
>>> otherwise ufshcd_probe_hba() will have set the state appropriately.
>>> 
>>> Fixes: 4db7a2360597 ("scsi: ufs: Fix concurrency of error handler and 
>>> other
>>> error recovery paths")
>>> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
>> I think that CanG recent series addressed that issue as well, can you 
>> take a look?
>> https://lore.kernel.org/lkml/1614145010-36079-2-git-send-email-cang@codeaurora.org/
> 
> Yes, there it is mixed in with other changes.  However it is probably 
> better
> as a separate patch.  Can Guo, what do you think?

Oh, I missed this one...
Sure, I will split it out as a seperate change in next version.

Thanks,
Can Guo.

> 
>> 
>> 
>>> ---
>>>  drivers/scsi/ufs/ufshcd.c | 2 ++
>>>  1 file changed, 2 insertions(+)
>>> 
>>> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
>>> index 77161750c9fb..91a403afe038 100644
>>> --- a/drivers/scsi/ufs/ufshcd.c
>>> +++ b/drivers/scsi/ufs/ufshcd.c
>>> @@ -7031,6 +7031,8 @@ static int ufshcd_reset_and_restore(struct 
>>> ufs_hba
>>> *hba)
>>>         spin_unlock_irqrestore(hba->host->host_lock, flags);
>>> 
>>>         do {
>>> +               hba->ufshcd_state = UFSHCD_STATE_RESET;
>>> +
>>>                 /* Reset the attached device */
>>>                 ufshcd_device_reset(hba);
>>> 
>>> --
>>> 2.17.1
>> 

  parent reply	other threads:[~2021-03-03 13:06 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-01 19:19 [PATCH] scsi: ufs: Fix incorrect ufshcd_state after ufshcd_reset_and_restore() Adrian Hunter
2021-03-01 20:46 ` Bean Huo
2021-03-01 23:54 ` Asutosh Das
2021-03-02  7:01 ` Avri Altman
2021-03-02  8:14   ` Adrian Hunter
2021-03-02 13:04     ` Bean Huo
2021-03-03 10:19     ` Can Guo [this message]
2021-03-03 10:05 ` Can Guo
2021-03-04  4:16 ` Martin K. Petersen

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=80301bea84b7349ca9dbdcc4f2c9a744@codeaurora.org \
    --to=cang@codeaurora.org \
    --cc=Avri.Altman@wdc.com \
    --cc=adrian.hunter@intel.com \
    --cc=alim.akhtar@samsung.com \
    --cc=asutoshd@codeaurora.org \
    --cc=huobean@gmail.com \
    --cc=jejb@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=stanley.chu@mediatek.com \
    /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.