> > On Sat, 2021-01-02 at 05:59 -0800, Can Guo wrote: > > + * @shutting_down: flag to check if shutdown has been invoked > > + * @host_sem: semaphore used to serialize concurrent contexts > > * @eh_wq: Workqueue that eh_work works on > > * @eh_work: Worker to handle UFS errors that require s/w attention > > * @eeh_work: Worker to handle exception events > > @@ -751,7 +753,8 @@ struct ufs_hba { > > u32 intr_mask; > > u16 ee_ctrl_mask; > > bool is_powered; > > - struct semaphore eh_sem; > > + bool shutting_down; > > + struct semaphore host_sem; > > > > /* Work Queues */ > > struct workqueue_struct *eh_wq; > > @@ -875,6 +878,11 @@ static inline bool ufshcd_is_wb_allowed(struct > > ufs_hba *hba) > > return hba->caps & UFSHCD_CAP_WB_EN; > > } > > > > +static inline bool ufshcd_is_sysfs_allowed(struct ufs_hba *hba) > > +{ > > + return !hba->shutting_down; > > +} > > + > > > Can, > > Instead adding new shutting_down flag, can we use availible variable > system_state? > Like Can, I am too, don't think that using system state here, e.g. UFS_SHUTDOWN_PM suffices. The use of the new flag, jointly with the semaphore, provides a tighter control. Acked-by: Avri Altman <avri.altman@xxxxxxx>