2019-03-28 11:01:38

by Bartosz Golaszewski

[permalink] [raw]
Subject: [PATCH] gpio: mockup: use simple_read_from_buffer() in debugfs read callback

From: Bartosz Golaszewski <[email protected]>

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 <[email protected]>
---
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);

- 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,
--
2.21.0



2019-03-28 13:13:19

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] gpio: mockup: use simple_read_from_buffer() in debugfs read callback


On 3/28/2019 4:30 PM, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <[email protected]>
>
> 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 <[email protected]>
> ---
> 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 <[email protected]>

-Mukesh

> }
>
> static ssize_t gpio_mockup_debugfs_write(struct file *file,

2019-03-28 13:44:54

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH] gpio: mockup: use simple_read_from_buffer() in debugfs read callback

czw., 28 mar 2019 o 14:11 Mukesh Ojha <[email protected]> napisaƂ(a):
>
>
> On 3/28/2019 4:30 PM, Bartosz Golaszewski wrote:
> > From: Bartosz Golaszewski <[email protected]>
> >
> > 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 <[email protected]>
> > ---
> > 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 <[email protected]>
>
> -Mukesh
>
> > }
> >
> > static ssize_t gpio_mockup_debugfs_write(struct file *file,