Skip to content

Commit 695df7e

Browse files
keosungmartinkpetersen
authored andcommitted
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>
1 parent 07959ef commit 695df7e

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

drivers/ufs/core/ufs-sysfs.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1847,6 +1847,7 @@ static ssize_t defrag_trigger_store(struct device *dev,
18471847

18481848
static DEVICE_ATTR_WO(defrag_trigger);
18491849

1850+
#define UFS_HID_AVAILABLE_SIZE_INVALID 0xFFFFFFFFU
18501851
static ssize_t fragmented_size_show(struct device *dev,
18511852
struct device_attribute *attr, char *buf)
18521853
{
@@ -1859,6 +1860,9 @@ static ssize_t fragmented_size_show(struct device *dev,
18591860
if (ret)
18601861
return ret;
18611862

1863+
if (value == UFS_HID_AVAILABLE_SIZE_INVALID)
1864+
return -ENODATA;
1865+
18621866
return sysfs_emit(buf, "%u\n", value);
18631867
}
18641868

0 commit comments

Comments
 (0)