Message ID | 20190322173052.23763-1-brgl@bgdev.pl |
---|---|
State | New |
Headers | show |
Series | gpio: mockup: fix debugfs read | expand |
On Fri, Mar 22, 2019 at 6:30 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > The debugfs read callback must advance ppos or users using read() on > the file descriptor will never get the EOL. This wasn't spotted before > as I was using busybox cat for testing which uses sendfile() internally > and only noticed it now when switched to cat from coreutils. > > Fixes: 2a9e27408e12 ("gpio: mockup: rework debugfs interface") > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Patch applied for fixes. Sorry for slow application, I was in no-wifi-land for some days. Yours, Linus Walleij
czw., 28 mar 2019 o 17:38 Linus Walleij <linus.walleij@linaro.org> napisał(a): > > On Fri, Mar 22, 2019 at 6:30 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > > > The debugfs read callback must advance ppos or users using read() on > > the file descriptor will never get the EOL. This wasn't spotted before > > as I was using busybox cat for testing which uses sendfile() internally > > and only noticed it now when switched to cat from coreutils. > > > > Fixes: 2a9e27408e12 ("gpio: mockup: rework debugfs interface") > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > Patch applied for fixes. > Sorry for slow application, I was in no-wifi-land for some days. > > Yours, > Linus Walleij Ugh, I was thinking about sending you a pull-request with this and a subsequent fix this evening. Plus other fixes I have in my tree. Bart
On Thu, Mar 28, 2019 at 5:47 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > czw., 28 mar 2019 o 17:38 Linus Walleij <linus.walleij@linaro.org> napisał(a): > > On Fri, Mar 22, 2019 at 6:30 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > > > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > > > > > The debugfs read callback must advance ppos or users using read() on > > > the file descriptor will never get the EOL. This wasn't spotted before > > > as I was using busybox cat for testing which uses sendfile() internally > > > and only noticed it now when switched to cat from coreutils. > > > > > > Fixes: 2a9e27408e12 ("gpio: mockup: rework debugfs interface") > > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > > > Patch applied for fixes. > > Sorry for slow application, I was in no-wifi-land for some days. > > > > Yours, > > Linus Walleij > > Ugh, I was thinking about sending you a pull-request with this and a > subsequent fix this evening. Plus other fixes I have in my tree. Oh if it is easier for you do that, and I will drop this patch and just merge your PR as it arrives. Yours, Linus Walleij
czw., 28 mar 2019 o 17:56 Linus Walleij <linus.walleij@linaro.org> napisał(a): > > On Thu, Mar 28, 2019 at 5:47 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > czw., 28 mar 2019 o 17:38 Linus Walleij <linus.walleij@linaro.org> napisał(a): > > > On Fri, Mar 22, 2019 at 6:30 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > > > > > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > > > > > > > The debugfs read callback must advance ppos or users using read() on > > > > the file descriptor will never get the EOL. This wasn't spotted before > > > > as I was using busybox cat for testing which uses sendfile() internally > > > > and only noticed it now when switched to cat from coreutils. > > > > > > > > Fixes: 2a9e27408e12 ("gpio: mockup: rework debugfs interface") > > > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > > > > > Patch applied for fixes. > > > Sorry for slow application, I was in no-wifi-land for some days. > > > > > > Yours, > > > Linus Walleij > > > > Ugh, I was thinking about sending you a pull-request with this and a > > subsequent fix this evening. Plus other fixes I have in my tree. > > Oh if it is easier for you do that, and I will drop this patch and just > merge your PR as it arrives. > > Yours, > Linus Walleij Yes, let's do it. Bart
diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 154d959e8993..74ba8b1d71d8 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -204,8 +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; char buf[3]; - int val, rv; + if (*ppos != 0) return 0; @@ -216,13 +217,14 @@ static ssize_t gpio_mockup_debugfs_read(struct file *file, gc = &chip->gc; val = gpio_mockup_get(gc, priv->offset); - snprintf(buf, sizeof(buf), "%d\n", val); + cnt = snprintf(buf, sizeof(buf), "%d\n", val); - rv = copy_to_user(usr_buf, buf, sizeof(buf)); + rv = copy_to_user(usr_buf, buf, cnt); if (rv) return rv; - return sizeof(buf) - 1; + *ppos += cnt; + return cnt; } static ssize_t gpio_mockup_debugfs_write(struct file *file,