diff options
| author | Keoseong Park <keosung.park@samsung.com> | 2025-12-26 07:28:25 +0300 |
|---|---|---|
| committer | Martin K. Petersen <martin.petersen@oracle.com> | 2026-01-17 07:11:09 +0300 |
| commit | 695df7ea6099aadc11fac8d510e4b7c5839508e3 (patch) | |
| tree | 2acb24b90af8fa8f2cdb4bf5c7dc2a38aad9b734 | |
| parent | 07959ef517b853e834eadd0647d3860252af8f99 (diff) | |
| download | linux-695df7ea6099aadc11fac8d510e4b7c5839508e3.tar.xz | |
scsi: ufs: core: Handle sentinel value for dHIDAvailableSize
JEDEC UFS spec defines 0xFFFFFFFF for dHIDAvailableSize as indicating no
valid fragmented size information. Returning the raw value can mislead
userspace. Return -ENODATA instead when the value is unavailable.
Signed-off-by: Keoseong Park <keosung.park@samsung.com>
Reviewed-by: Peter Wang <peter.wang@mediatek.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/20251226042825epcms2p6f02ba12fa97ff4a69c00f6fb9ff55603@epcms2p6
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
| -rw-r--r-- | drivers/ufs/core/ufs-sysfs.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/ufs/core/ufs-sysfs.c b/drivers/ufs/core/ufs-sysfs.c index b33f8656edb5..1017dd3ae5d3 100644 --- a/drivers/ufs/core/ufs-sysfs.c +++ b/drivers/ufs/core/ufs-sysfs.c @@ -1847,6 +1847,7 @@ static ssize_t defrag_trigger_store(struct device *dev, static DEVICE_ATTR_WO(defrag_trigger); +#define UFS_HID_AVAILABLE_SIZE_INVALID 0xFFFFFFFFU static ssize_t fragmented_size_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -1859,6 +1860,9 @@ static ssize_t fragmented_size_show(struct device *dev, if (ret) return ret; + if (value == UFS_HID_AVAILABLE_SIZE_INVALID) + return -ENODATA; + return sysfs_emit(buf, "%u\n", value); } |
