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: Zijun Hu <quic_zijuhu@quicinc.com> Link: https://lore.kernel.org/r/20240724-bus_fix-v2-1-5adbafc698fb@quicinc.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
d8ac7378bc
commit
56452dbc0a
@ -104,7 +104,8 @@ static ssize_t bus_attr_show(struct kobject *kobj, struct attribute *attr,
|
|||||||
{
|
{
|
||||||
struct bus_attribute *bus_attr = to_bus_attr(attr);
|
struct bus_attribute *bus_attr = to_bus_attr(attr);
|
||||||
struct subsys_private *subsys_priv = to_subsys_private(kobj);
|
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)
|
if (bus_attr->show)
|
||||||
ret = bus_attr->show(subsys_priv->bus, buf);
|
ret = bus_attr->show(subsys_priv->bus, buf);
|
||||||
@ -116,7 +117,8 @@ static ssize_t bus_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
{
|
{
|
||||||
struct bus_attribute *bus_attr = to_bus_attr(attr);
|
struct bus_attribute *bus_attr = to_bus_attr(attr);
|
||||||
struct subsys_private *subsys_priv = to_subsys_private(kobj);
|
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)
|
if (bus_attr->store)
|
||||||
ret = bus_attr->store(subsys_priv->bus, buf, count);
|
ret = bus_attr->store(subsys_priv->bus, buf, count);
|
||||||
|
Loading…
Reference in New Issue
Block a user