On Mon, Dec 18, 2023 at 02:52:14PM -0800, Bart Van Assche wrote: > ufshcd_init() calls pm_runtime_get_sync() before it calls > async_schedule(). ufshcd_async_scan() calls pm_runtime_put_sync() > directly or indirectly from ufshcd_add_lus(). Simplify > ufshcd_async_scan() by always calling pm_runtime_put_sync() from > ufshcd_async_scan(). > > Cc: stable@xxxxxxxxxxxxxxx No fixes tag? > Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> - Mani > --- > drivers/ufs/core/ufshcd.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c > index d6ae5d17892c..0ad8bde39cd1 100644 > --- a/drivers/ufs/core/ufshcd.c > +++ b/drivers/ufs/core/ufshcd.c > @@ -8711,7 +8711,6 @@ static int ufshcd_add_lus(struct ufs_hba *hba) > > ufs_bsg_probe(hba); > scsi_scan_host(hba->host); > - pm_runtime_put_sync(hba->dev); > > out: > return ret; > @@ -8980,15 +8979,15 @@ static void ufshcd_async_scan(void *data, async_cookie_t cookie) > > /* Probe and add UFS logical units */ > ret = ufshcd_add_lus(hba); > + > out: > + pm_runtime_put_sync(hba->dev); > /* > * If we failed to initialize the device or the device is not > * present, turn off the power/clocks etc. > */ > - if (ret) { > - pm_runtime_put_sync(hba->dev); > + if (ret) > ufshcd_hba_exit(hba); > - } > } > > static enum scsi_timeout_action ufshcd_eh_timed_out(struct scsi_cmnd *scmd) -- மணிவண்ணன் சதாசிவம்