]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 4 Apr 2023 19:40:36 +0000 (21:40 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 30 Apr 2023 23:26:27 +0000 (08:26 +0900)
commit 1935f0deb6116dd785ea64d8035eab0ff441255b upstream.

Drivers are supposed to fix this up if needed if they don't outright
reject it. Uncovered by 8f58637f1958 ("fbmem: Check virtual screen
sizes in fb_set_var()").

Reported-by: syzbot+20dcf81733d43ddff661@syzkaller.appspotmail.com
Link: https://syzkaller.appspot.com/bug?id=c5faf983bfa4a607de530cd3bb008888bf06cefc
Cc: stable@vger.kernel.org # v5.4+
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Javier Martinez Canillas <javierm@redhat.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230404194038.472803-1-daniel.vetter@ffwll.ch
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/drm_fb_helper.c

index 71edb80fe0fb90611553215d930f76466f51b609..06cd2f8c2773439ec6cd1667f40f656a13211e05 100644 (file)
@@ -1406,6 +1406,9 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
                return -EINVAL;
        }
 
+       var->xres_virtual = fb->width;
+       var->yres_virtual = fb->height;
+
        /*
         * Workaround for SDL 1.2, which is known to be setting all pixel format
         * fields values to zero in some cases. We treat this situation as a