diff mbox series

gpio: mockup: use simple_read_from_buffer() in debugfs read callback

Message ID 20190328110043.13391-1-brgl@bgdev.pl
State New
Headers show
Series gpio: mockup: use simple_read_from_buffer() in debugfs read callback | expand

Commit Message

Bartosz Golaszewski March 28, 2019, 11 a.m. UTC
From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

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")
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 drivers/gpio/gpio-mockup.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

Comments

Mukesh Ojha March 28, 2019, 1:11 p.m. UTC | #1
On 3/28/2019 4:30 PM, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> 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")
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> ---
>   drivers/gpio/gpio-mockup.c | 7 +------
>   1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
> index 74ba8b1d71d8..859585dce5c9 100644
> --- a/drivers/gpio/gpio-mockup.c
> +++ b/drivers/gpio/gpio-mockup.c
> @@ -219,12 +219,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);


why \n is inserted in the buf..

rv variable is unused now.

>   
> -	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);



Looks good to me.
Remove the unused variable.

Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>

-Mukesh

>   }
>   
>   static ssize_t gpio_mockup_debugfs_write(struct file *file,
Bartosz Golaszewski March 28, 2019, 1:42 p.m. UTC | #2
czw., 28 mar 2019 o 14:11 Mukesh Ojha <mojha@codeaurora.org> napisaƂ(a):
>
>
> On 3/28/2019 4:30 PM, Bartosz Golaszewski wrote:
> > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> >
> > 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")
> > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > ---
> >   drivers/gpio/gpio-mockup.c | 7 +------
> >   1 file changed, 1 insertion(+), 6 deletions(-)
> >
> > diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
> > index 74ba8b1d71d8..859585dce5c9 100644
> > --- a/drivers/gpio/gpio-mockup.c
> > +++ b/drivers/gpio/gpio-mockup.c
> > @@ -219,12 +219,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);
>
>
> why \n is inserted in the buf..
>

Because this is how all the attributes work - you read the value + '\n'.

> rv variable is unused now.
>
> >
> > -     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);
>
>
>
> Looks good to me.
> Remove the unused variable.
>

Thanks, removed that and a stray newline.

Bart

> Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
>
> -Mukesh
>
> >   }
> >
> >   static ssize_t gpio_mockup_debugfs_write(struct file *file,
diff mbox series

Patch

diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
index 74ba8b1d71d8..859585dce5c9 100644
--- a/drivers/gpio/gpio-mockup.c
+++ b/drivers/gpio/gpio-mockup.c
@@ -219,12 +219,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,