lkml.org 
[lkml]   [2017]   [Dec]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/4] gpio: sysfs: correct error handling on 'value' attribute read.
    Date
    '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>
    ---
    drivers/gpio/gpiolib-sysfs.c | 6 +++++-
    1 file changed, 5 insertions(+), 1 deletion(-)

    diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c
    index 7a3f4271393b..1b0f415df03b 100644
    --- a/drivers/gpio/gpiolib-sysfs.c
    +++ b/drivers/gpio/gpiolib-sysfs.c
    @@ -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;
    --
    2.13.3
    \
     
     \ /
      Last update: 2017-12-18 11:09    [W:3.002 / U:0.324 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site