Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aca86315 authored by Zijun Hu's avatar Zijun Hu Committed by Greg Kroah-Hartman
Browse files

driver core: bus: Return -EIO instead of 0 when show/store invalid bus attribute



[ Upstream commit c0fd973c108cdc22a384854bc4b3e288a9717bb2 ]

Return -EIO instead of 0 for below erroneous bus attribute operations:
 - read a bus attribute without show().
 - write a bus attribute without store().

Signed-off-by: default avatarZijun Hu <quic_zijuhu@quicinc.com>
Link: https://lore.kernel.org/r/20240724-bus_fix-v2-1-5adbafc698fb@quicinc.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent e0daff56
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -103,7 +103,8 @@ static ssize_t bus_attr_show(struct kobject *kobj, struct attribute *attr,
{
	struct bus_attribute *bus_attr = to_bus_attr(attr);
	struct subsys_private *subsys_priv = to_subsys_private(kobj);
	ssize_t ret = 0;
	/* return -EIO for reading a bus attribute without show() */
	ssize_t ret = -EIO;

	if (bus_attr->show)
		ret = bus_attr->show(subsys_priv->bus, buf);
@@ -115,7 +116,8 @@ static ssize_t bus_attr_store(struct kobject *kobj, struct attribute *attr,
{
	struct bus_attribute *bus_attr = to_bus_attr(attr);
	struct subsys_private *subsys_priv = to_subsys_private(kobj);
	ssize_t ret = 0;
	/* return -EIO for writing a bus attribute without store() */
	ssize_t ret = -EIO;

	if (bus_attr->store)
		ret = bus_attr->store(subsys_priv->bus, buf, count);