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

Can Guo
2021-01-11T01:31:24Z

On 2021-01-11 00:18, Bean Huo wrote:
> 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?
>
> Thanks,
> Bean

Hi Bean,

I prefer the flag shutting_down, it tells us whether ufshcd_shutdown()
has been invoked or not. It comes handy when debug some system crash
issues caused by UFS during reboot/shutdown tests. system_state is too
wide in this case.

Thanks,
Can Guo.