diff mbox series

gpiolib: cdev: convert stream-like files from

Message ID 1612688430-54282-1-git-send-email-yang.lee@linux.alibaba.com
State New
Headers show
Series gpiolib: cdev: convert stream-like files from | expand

Commit Message

Yang Li Feb. 7, 2021, 9 a.m. UTC
Eliminate the following coccicheck warning:
./drivers/gpio/gpiolib-cdev.c:2307:7-23: WARNING: gpio_fileops: .read()
has stream semantic; safe to change nonseekable_open -> stream_open.

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
---
 drivers/gpio/gpiolib-cdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bartosz Golaszewski Feb. 8, 2021, 5:58 a.m. UTC | #1
On Sun, Feb 7, 2021 at 10:00 AM Yang Li <yang.lee@linux.alibaba.com> wrote:
>

> Eliminate the following coccicheck warning:

> ./drivers/gpio/gpiolib-cdev.c:2307:7-23: WARNING: gpio_fileops: .read()

> has stream semantic; safe to change nonseekable_open -> stream_open.

>

> Reported-by: Abaci Robot <abaci@linux.alibaba.com>

> Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>

> ---

>  drivers/gpio/gpiolib-cdev.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

>

> diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c

> index 1631727..bad68ef 100644

> --- a/drivers/gpio/gpiolib-cdev.c

> +++ b/drivers/gpio/gpiolib-cdev.c

> @@ -2304,7 +2304,7 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file)

>         get_device(&gdev->dev);

>         file->private_data = cdev;

>

> -       ret = nonseekable_open(inode, file);

> +       ret = stream_open(inode, file);

>         if (ret)

>                 goto out_unregister_notifier;

>

> --

> 1.8.3.1

>


I think you have a false positive here - we don't even take the offset
argument into account so I don't see how the line_watch_read callback
could be interpreted as seekable.

Bart
Linus Walleij Feb. 12, 2021, 9 a.m. UTC | #2
On Sun, Feb 7, 2021 at 10:00 AM Yang Li <yang.lee@linux.alibaba.com> wrote:

> Eliminate the following coccicheck warning:

> ./drivers/gpio/gpiolib-cdev.c:2307:7-23: WARNING: gpio_fileops: .read()

> has stream semantic; safe to change nonseekable_open -> stream_open.

>

> Reported-by: Abaci Robot <abaci@linux.alibaba.com>

> Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>


This doesn't make any sense to me.

It is pretty clear from context that this file should *not* be
seeked and it seems just dangerous to randomly allow that.
Better safe than sorry.

I don't know if the function nonseekable_open() has an unintuitive
name if it means anything else than that. I burnt myself on the FS
before.

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c
index 1631727..bad68ef 100644
--- a/drivers/gpio/gpiolib-cdev.c
+++ b/drivers/gpio/gpiolib-cdev.c
@@ -2304,7 +2304,7 @@  static int gpio_chrdev_open(struct inode *inode, struct file *file)
 	get_device(&gdev->dev);
 	file->private_data = cdev;
 
-	ret = nonseekable_open(inode, file);
+	ret = stream_open(inode, file);
 	if (ret)
 		goto out_unregister_notifier;