Commit 98eec349 authored by Chenghai Huang's avatar Chenghai Huang Committed by Greg Kroah-Hartman
Browse files

uacce: fix isolate sysfs check condition



uacce supports the device isolation feature. If the driver
implements the isolate_err_threshold_read and
isolate_err_threshold_write callback functions, uacce will create
sysfs files now. Users can read and configure the isolation policy
through sysfs. Currently, sysfs files are created as long as either
isolate_err_threshold_read or isolate_err_threshold_write callback
functions are present.

However, accessing a non-existent callback function may cause the
system to crash. Therefore, intercept the creation of sysfs if
neither read nor write exists; create sysfs if either is supported,
but intercept unsupported operations at the call site.

Fixes: e3e289fb ("uacce: supports device isolation feature")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarChenghai Huang <huangchenghai2@huawei.com>
Acked-by: default avatarZhangfei Gao <zhangfei.gao@linaro.org>
Link: https://patch.msgid.link/20251202061256.4158641-3-huangchenghai2@huawei.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a3bece36
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -382,6 +382,9 @@ static ssize_t isolate_strategy_show(struct device *dev, struct device_attribute
	struct uacce_device *uacce = to_uacce_device(dev);
	u32 val;

	if (!uacce->ops->isolate_err_threshold_read)
		return -ENOENT;

	val = uacce->ops->isolate_err_threshold_read(uacce);

	return sysfs_emit(buf, "%u\n", val);
@@ -394,6 +397,9 @@ static ssize_t isolate_strategy_store(struct device *dev, struct device_attribut
	unsigned long val;
	int ret;

	if (!uacce->ops->isolate_err_threshold_write)
		return -ENOENT;

	if (kstrtoul(buf, 0, &val) < 0)
		return -EINVAL;