mbox series

[v5,0/2] Synchronize user layer access with system PM ops and error handling

Message ID 1610594010-7254-1-git-send-email-cang@codeaurora.org
Headers show
Series Synchronize user layer access with system PM ops and error handling | expand

Message

Can Guo Jan. 14, 2021, 3:13 a.m. UTC
This series contains two changes and it is based on 5.11/scsi-queue
The 1st change is just a minor fix.
The 2nd change is to synchronize user layer access through UFS sysfs nodes, so that system PM ops (suspend, resume and shutdown), error handling and async probe won't be disturbed by user layer access. The protection is only added to some sysfs nodes, not all of them.

Change since v4:
- Incoroporate Adrian's comment - renamed ufshcd_is_sysfs_allowed() as ufshcd_is_user_access_allowed()

Change since v3:
- Rebased to 5.12/scsi-queue

Change since v2:
- Updated the 1st change, added a global boolean flag to tell if system suspend is invoked when hba is NULL, it is used during resume in case of hba becomes not NULL.

Change since v1:
- Slightly updated the 2nd change, added a dedicated inline func to check hba->shutting_down in ufshcd.h. This inline func can be updated to add more rules for sysfs passage in future.


Can Guo (2):
  scsi: ufs: Fix a possible NULL pointer issue
  scsi: ufs: Protect PM ops and err_handler from user access through
    sysfs

 drivers/scsi/ufs/ufs-sysfs.c | 106 ++++++++++++++++++++++++++++++++++++-------
 drivers/scsi/ufs/ufshcd.c    |  57 +++++++++++++++--------
 drivers/scsi/ufs/ufshcd.h    |  10 +++-
 3 files changed, 138 insertions(+), 35 deletions(-)

Comments

Martin K. Petersen Jan. 21, 2021, 3:34 a.m. UTC | #1
On Wed, 13 Jan 2021 19:13:26 -0800, Can Guo wrote:

> This series contains two changes and it is based on 5.11/scsi-queue

> The 1st change is just a minor fix.

> The 2nd change is to synchronize user layer access through UFS sysfs nodes, so that system PM ops (suspend, resume and shutdown), error handling and async probe won't be disturbed by user layer access. The protection is only added to some sysfs nodes, not all of them.

> 

> Change since v4:

> - Incoroporate Adrian's comment - renamed ufshcd_is_sysfs_allowed() as ufshcd_is_user_access_allowed()

> 

> [...]


Applied to 5.12/scsi-queue, thanks!

[1/2] scsi: ufs: Fix a possible NULL pointer issue
      https://git.kernel.org/mkp/scsi/c/fb7afe24ba1b
[2/2] scsi: ufs: Protect PM ops and err_handler from user access through sysfs
      https://git.kernel.org/mkp/scsi/c/9cd20d3f4736

-- 
Martin K. Petersen	Oracle Linux Engineering