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>
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)
{
if (ret)
return ret;
+ if (value == UFS_HID_AVAILABLE_SIZE_INVALID)
+ return -ENODATA;
+
return sysfs_emit(buf, "%u\n", value);
}