fbdev: Don't re-validate info->state in fb_ops implementations
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 28 Apr 2023 12:24:49 +0000 (14:24 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 8 May 2023 13:28:34 +0000 (15:28 +0200)
The file-op entry points fb_read() and fb_write() verify that
info->state has been set to FBINFO_STATE_RUNNING. Remove the same
test from the implementations of struct fb_ops.{fb_read,fb_write}.

v2:
* also remove test from ivtvfb, braodsheetfb, hecubafb and
  metronomefb (Geert)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Tested-by: Sui Jingfeng <suijingfeng@loongson.cn>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Helge Deller <deller@gmx.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20230428122452.4856-17-tzimmermann@suse.de
drivers/media/pci/ivtv/ivtvfb.c
drivers/video/fbdev/broadsheetfb.c
drivers/video/fbdev/core/fb_sys_fops.c
drivers/video/fbdev/hecubafb.c
drivers/video/fbdev/metronomefb.c
drivers/video/fbdev/sm712fb.c

index 00ac94d..22123a2 100644 (file)
@@ -378,9 +378,6 @@ static ssize_t ivtvfb_write(struct fb_info *info, const char __user *buf,
        unsigned long dma_size;
        u16 lead = 0, tail = 0;
 
-       if (info->state != FBINFO_STATE_RUNNING)
-               return -EPERM;
-
        total_size = info->screen_size;
 
        if (total_size == 0)
index 65dc86b..691de5d 100644 (file)
@@ -1013,9 +1013,6 @@ static ssize_t broadsheetfb_write(struct fb_info *info, const char __user *buf,
        int err = 0;
        unsigned long total_size;
 
-       if (info->state != FBINFO_STATE_RUNNING)
-               return -EPERM;
-
        total_size = info->fix.smem_len;
 
        if (p > total_size)
index 6589123..7dee5d3 100644 (file)
@@ -22,9 +22,6 @@ ssize_t fb_sys_read(struct fb_info *info, char __user *buf, size_t count,
        unsigned long total_size, c;
        ssize_t ret;
 
-       if (info->state != FBINFO_STATE_RUNNING)
-               return -EPERM;
-
        total_size = info->screen_size;
 
        if (total_size == 0)
@@ -64,9 +61,6 @@ ssize_t fb_sys_write(struct fb_info *info, const char __user *buf,
        unsigned long total_size, c;
        size_t ret;
 
-       if (info->state != FBINFO_STATE_RUNNING)
-               return -EPERM;
-
        total_size = info->screen_size;
 
        if (total_size == 0)
index ddfa285..a2996d3 100644 (file)
@@ -163,9 +163,6 @@ static ssize_t hecubafb_write(struct fb_info *info, const char __user *buf,
        int err = 0;
        unsigned long total_size;
 
-       if (info->state != FBINFO_STATE_RUNNING)
-               return -EPERM;
-
        total_size = info->fix.smem_len;
 
        if (p > total_size)
index afa9b41..2bb068c 100644 (file)
@@ -523,9 +523,6 @@ static ssize_t metronomefb_write(struct fb_info *info, const char __user *buf,
        int err = 0;
        unsigned long total_size;
 
-       if (info->state != FBINFO_STATE_RUNNING)
-               return -EPERM;
-
        total_size = info->fix.smem_len;
 
        if (p > total_size)
index b528776..6f852cd 100644 (file)
@@ -1031,9 +1031,6 @@ static ssize_t smtcfb_read(struct fb_info *info, char __user *buf,
        if (!info || !info->screen_base)
                return -ENODEV;
 
-       if (info->state != FBINFO_STATE_RUNNING)
-               return -EPERM;
-
        total_size = info->screen_size;
 
        if (total_size == 0)
@@ -1097,9 +1094,6 @@ static ssize_t smtcfb_write(struct fb_info *info, const char __user *buf,
        if (!info || !info->screen_base)
                return -ENODEV;
 
-       if (info->state != FBINFO_STATE_RUNNING)
-               return -EPERM;
-
        total_size = info->screen_size;
 
        if (total_size == 0)