[v4,1/3] scsi: ufs: core: Revert "WB is only available on LUN #0 to #7"

Message ID 20221022213650.626766-2-beanhuo@iokpp.de
State New
Headers
Series Changes for ufshcd.c |

Commit Message

Bean Huo Oct. 22, 2022, 9:36 p.m. UTC
  From: Bean Huo <beanhuo@micron.com>

One newer 'commit d3d9c4570285 ("scsi: ufs: Fix memory corruption by
ufshcd_read_desc_param()")' has properly fixed stack overflow issue,
'commit a2fca52ee640 ("scsi: ufs: WB is only available on LUN #0 to #7")'
is no longer required, we can revert it now.

Cc: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Bean Huo <beanhuo@micron.com>
---
 drivers/ufs/core/ufs-sysfs.c   | 3 +--
 drivers/ufs/core/ufshcd-priv.h | 6 +-----
 drivers/ufs/core/ufshcd.c      | 2 +-
 3 files changed, 3 insertions(+), 8 deletions(-)
  

Comments

Arthur Simchaev Oct. 23, 2022, 9:45 a.m. UTC | #1
> -----Original Message-----
> From: Bean Huo <beanhuo@iokpp.de>
> Sent: Sunday, October 23, 2022 12:37 AM
> To: alim.akhtar@samsung.com; Avri Altman <Avri.Altman@wdc.com>;
> asutoshd@codeaurora.org; jejb@linux.ibm.com;
> martin.petersen@oracle.com; stanley.chu@mediatek.com;
> beanhuo@micron.com; bvanassche@acm.org; tomas.winkler@intel.com;
> cang@codeaurora.org; daejun7.park@samsung.com
> Cc: linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org; Jaegeuk Kim
> <jaegeuk@kernel.org>
> Subject: [PATCH v4 1/3] scsi: ufs: core: Revert "WB is only available on LUN #0
> to #7"
> 
> CAUTION: This email originated from outside of Western Digital. Do not click
> on links or open attachments unless you recognize the sender and know that
> the content is safe.
> 
> 
> From: Bean Huo <beanhuo@micron.com>
> 
> One newer 'commit d3d9c4570285 ("scsi: ufs: Fix memory corruption by
> ufshcd_read_desc_param()")' has properly fixed stack overflow issue,
> 'commit a2fca52ee640 ("scsi: ufs: WB is only available on LUN #0 to #7")'
> is no longer required, we can revert it now.
> 
> Cc: Jaegeuk Kim <jaegeuk@kernel.org>
> Signed-off-by: Bean Huo <beanhuo@micron.com>

Reviewed-by: Arthur Simchaev <arthur.simchaev@wdc.com>
  
Bart Van Assche Oct. 24, 2022, 11:25 p.m. UTC | #2
On 10/22/22 14:36, Bean Huo wrote:
> One newer 'commit d3d9c4570285 ("scsi: ufs: Fix memory corruption by

One -> A?

> ufshcd_read_desc_param()")' has properly fixed stack overflow issue,
> 'commit a2fca52ee640 ("scsi: ufs: WB is only available on LUN #0 to #7")'
> is no longer required, we can revert it now.

Anyway:

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
  

Patch

diff --git a/drivers/ufs/core/ufs-sysfs.c b/drivers/ufs/core/ufs-sysfs.c
index 53aea56d1de1..eb6b278c4e79 100644
--- a/drivers/ufs/core/ufs-sysfs.c
+++ b/drivers/ufs/core/ufs-sysfs.c
@@ -1234,8 +1234,7 @@  static ssize_t _pname##_show(struct device *dev,			\
 	struct scsi_device *sdev = to_scsi_device(dev);			\
 	struct ufs_hba *hba = shost_priv(sdev->host);			\
 	u8 lun = ufshcd_scsi_to_upiu_lun(sdev->lun);			\
-	if (!ufs_is_valid_unit_desc_lun(&hba->dev_info, lun,		\
-				_duname##_DESC_PARAM##_puname))		\
+	if (!ufs_is_valid_unit_desc_lun(&hba->dev_info, lun))		\
 		return -EINVAL;						\
 	return ufs_sysfs_read_desc_param(hba, QUERY_DESC_IDN_##_duname,	\
 		lun, _duname##_DESC_PARAM##_puname, buf, _size);	\
diff --git a/drivers/ufs/core/ufshcd-priv.h b/drivers/ufs/core/ufshcd-priv.h
index f68ca33f6ac7..a9e8e1f5afe7 100644
--- a/drivers/ufs/core/ufshcd-priv.h
+++ b/drivers/ufs/core/ufshcd-priv.h
@@ -293,16 +293,12 @@  static inline int ufshcd_rpm_put(struct ufs_hba *hba)
  * @lun: LU number to check
  * @return: true if the lun has a matching unit descriptor, false otherwise
  */
-static inline bool ufs_is_valid_unit_desc_lun(struct ufs_dev_info *dev_info,
-		u8 lun, u8 param_offset)
+static inline bool ufs_is_valid_unit_desc_lun(struct ufs_dev_info *dev_info, u8 lun)
 {
 	if (!dev_info || !dev_info->max_lu_supported) {
 		pr_err("Max General LU supported by UFS isn't initialized\n");
 		return false;
 	}
-	/* WB is available only for the logical unit from 0 to 7 */
-	if (param_offset == UNIT_DESC_PARAM_WB_BUF_ALLOC_UNITS)
-		return lun < UFS_UPIU_MAX_WB_LUN_ID;
 	return lun == UFS_UPIU_RPMB_WLUN || (lun < dev_info->max_lu_supported);
 }
 
diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index c8f0fe740005..8cdba9a54870 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -3606,7 +3606,7 @@  static inline int ufshcd_read_unit_desc_param(struct ufs_hba *hba,
 	 * Unit descriptors are only available for general purpose LUs (LUN id
 	 * from 0 to 7) and RPMB Well known LU.
 	 */
-	if (!ufs_is_valid_unit_desc_lun(&hba->dev_info, lun, param_offset))
+	if (!ufs_is_valid_unit_desc_lun(&hba->dev_info, lun))
 		return -EOPNOTSUPP;
 
 	return ufshcd_read_desc_param(hba, QUERY_DESC_IDN_UNIT, lun,