Re: [RFC PATCH v1] scsi: ufs: Quiesce all scsi devices before shutdown
From: Stanley Chu
Date: Wed Jul 01 2020 - 23:36:55 EST
Hi Bart,
On Wed, 2020-07-01 at 20:02 -0700, Bart Van Assche wrote:
> On 2020-07-01 18:32, Stanley Chu wrote:
> > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> > index 59358bb75014..cadfa9006972 100644
> > --- a/drivers/scsi/ufs/ufshcd.c
> > +++ b/drivers/scsi/ufs/ufshcd.c
> > @@ -8599,10 +8599,14 @@ EXPORT_SYMBOL(ufshcd_runtime_idle);
> > int ufshcd_shutdown(struct ufs_hba *hba)
> > {
> > int ret = 0;
> > + struct scsi_target *starget;
> >
> > if (!hba->is_powered)
> > goto out;
> >
> > + list_for_each_entry(starget, &hba->host->__targets, siblings)
> > + scsi_target_quiesce(starget);
> > +
> > if (ufshcd_is_ufs_dev_poweroff(hba) && ufshcd_is_link_off(hba))
> > goto out;
>
> Please add a comment above the list_for_each_entry() loop that explains
> that there is no matching scsi_target_unquiesce() call and also that
> SCSI commands queued after the scsi_target_quiesce() call returned will
> block until blk_cleanup_queue() is called (see also the blk_queue_dying()
> check in blk_queue_enter()).
Thanks for the review.
I'll add above comments in RFC v2.
Thanks,
Stanley Chu