mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-08 15:04:45 +00:00
Ccommitd3d9c45702
("scsi: ufs: Fix memory corruption by ufshcd_read_desc_param()") has properly fixed stack overflow issue. As a result, commita2fca52ee6
("scsi: ufs: WB is only available on LUN #0 to #7") is no longer required. Revert it. Cc: Jaegeuk Kim <jaegeuk@kernel.org> Signed-off-by: Bean Huo <beanhuo@micron.com> Link: https://lore.kernel.org/r/20221025222430.277768-2-beanhuo@iokpp.de Reviewed-by: Arthur Simchaev <arthur.simchaev@wdc.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
25ad6f63e7
commit
b43678ea5b
@ -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); \
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -3608,7 +3608,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,
|
||||
|
Loading…
Reference in New Issue
Block a user