RE: [PATCH 2/2] scsi: ufs: Protect PM ops and err_handler from user access through sysfs

Avri Altman
2021-01-12T08:21:39Z

>
> 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@wdc.com>