OSDN Git Service

iio: hid-sensor: fix return of -EINVAL on invalid values in ret or value
authorColin Ian King <colin.king@canonical.com>
Wed, 19 Apr 2017 14:35:48 +0000 (15:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 24 Mar 2018 10:00:16 +0000 (11:00 +0100)
[ Upstream commit c894acc7bf400d039bf740420b22f0b71b7fb504 ]

Ensure that when an invalid value in ret or value is found -EINVAL
is returned. A previous commit broke the way the return error is
being returned and instead caused the return code in ret to be
re-assigned rather than be returned.

Fixes: 5d9854eaea776 ("iio: hid-sensor: Store restore poll and hysteresis on S3")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iio/common/hid-sensors/hid-sensor-attributes.c

index ab646a9..af85db5 100644 (file)
@@ -215,7 +215,7 @@ int hid_sensor_write_samp_freq_value(struct hid_sensor_common *st,
        ret = sensor_hub_set_feature(st->hsdev, st->poll.report_id,
                                     st->poll.index, sizeof(value), &value);
        if (ret < 0 || value < 0)
-               ret = -EINVAL;
+               return -EINVAL;
 
        ret = sensor_hub_get_feature(st->hsdev,
                                     st->poll.report_id,
@@ -265,7 +265,7 @@ int hid_sensor_write_raw_hyst_value(struct hid_sensor_common *st,
                                     st->sensitivity.index, sizeof(value),
                                     &value);
        if (ret < 0 || value < 0)
-               ret = -EINVAL;
+               return -EINVAL;
 
        ret = sensor_hub_get_feature(st->hsdev,
                                     st->sensitivity.report_id,