diff options
author | Peter Rajnoha <prajnoha@redhat.com> | 2018-12-05 12:27:44 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-12-06 16:07:43 +0100 |
commit | df44b479654f62b478c18ee4d8bc4e9f897a9844 (patch) | |
tree | 2c028dc441857a753c6341bacbb86b9a6e9a5e07 /drivers/base/core.c | |
parent | c37d721c68ad88925ba0e72f6e14acb829a8c6bb (diff) | |
download | linux-stable-df44b479654f62b478c18ee4d8bc4e9f897a9844.tar.gz linux-stable-df44b479654f62b478c18ee4d8bc4e9f897a9844.tar.bz2 linux-stable-df44b479654f62b478c18ee4d8bc4e9f897a9844.zip |
kobject: return error code if writing /sys/.../uevent fails
Propagate error code back to userspace if writing the /sys/.../uevent
file fails. Before, the write operation always returned with success,
even if we failed to recognize the input string or if we failed to
generate the uevent itself.
With the error codes properly propagated back to userspace, we are
able to react in userspace accordingly by not assuming and awaiting
a uevent that is not delivered.
Signed-off-by: Peter Rajnoha <prajnoha@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base/core.c')
-rw-r--r-- | drivers/base/core.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index e2285059161d..a4ced331bc50 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -1073,8 +1073,14 @@ out: static ssize_t uevent_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { - if (kobject_synth_uevent(&dev->kobj, buf, count)) + int rc; + + rc = kobject_synth_uevent(&dev->kobj, buf, count); + + if (rc) { dev_err(dev, "uevent: failed to send synthetic uevent\n"); + return rc; + } return count; } |