gpio: mockup: use simple_read_from_buffer() in debugfs read callback
authorBartosz Golaszewski <bgolaszewski@baylibre.com>
Thu, 28 Mar 2019 10:38:06 +0000 (11:38 +0100)
committerBartosz Golaszewski <bgolaszewski@baylibre.com>
Thu, 28 Mar 2019 17:04:53 +0000 (18:04 +0100)
Calling read() for a single byte read will return 2 currently. Use
simple_read_from_buffer() which correctly handles all sizes.

Fixes: 2a9e27408e12 ("gpio: mockup: rework debugfs interface")
Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
drivers/gpio/gpio-mockup.c

index 74ba8b1d71d87a2b7c4b8963a5362bbf1ef59eb3..b6a4efce7c9285f0a26411246d615c90f498d0be 100644 (file)
@@ -204,10 +204,9 @@ static ssize_t gpio_mockup_debugfs_read(struct file *file,
        struct gpio_mockup_chip *chip;
        struct seq_file *sfile;
        struct gpio_chip *gc;
-       int val, rv, cnt;
+       int val, cnt;
        char buf[3];
 
-
        if (*ppos != 0)
                return 0;
 
@@ -219,12 +218,7 @@ static ssize_t gpio_mockup_debugfs_read(struct file *file,
        val = gpio_mockup_get(gc, priv->offset);
        cnt = snprintf(buf, sizeof(buf), "%d\n", val);
 
-       rv = copy_to_user(usr_buf, buf, cnt);
-       if (rv)
-               return rv;
-
-       *ppos += cnt;
-       return cnt;
+       return simple_read_from_buffer(usr_buf, size, ppos, buf, cnt);
 }
 
 static ssize_t gpio_mockup_debugfs_write(struct file *file,