gpio: sysfs: correct error handling on 'value' attribute read.

'value' attribute is supposed to only return 0 or 1 according to
the documentation.
With today's implementation, if gpiod_get_value_cansleep() fails
the printed 'value' is a negative value.

This patch ensures that an error is returned on read instead.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Christophe Leroy 2017-12-18 11:08:31 +01:00 committed by Linus Walleij
parent 7fda9100bb
commit 9295c01253
1 changed files with 5 additions and 1 deletions

View File

@ -106,8 +106,12 @@ static ssize_t value_show(struct device *dev,
mutex_lock(&data->mutex);
status = sprintf(buf, "%d\n", gpiod_get_value_cansleep(desc));
status = gpiod_get_value_cansleep(desc);
if (status < 0)
goto err;
status = sprintf(buf, "%d\n", status);
err:
mutex_unlock(&data->mutex);
return status;