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

Reported-by: syzbot+20dcf81733d43ddff...@syzkaller.appspotmail.com
Link: 
https://syzkaller.appspot.com/bug?id=c5faf983bfa4a607de530cd3bb008888bf06cefc
Cc: sta...@vger.kernel.org # v5.4+
Cc: Daniel Vetter <dan...@ffwll.ch>
Cc: Javier Martinez Canillas <javi...@redhat.com>
Cc: Thomas Zimmermann <tzimmerm...@suse.de>
Signed-off-by: Daniel Vetter <daniel.vet...@intel.com>
---
 drivers/gpu/drm/drm_fb_helper.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 59409820f424..eb4ece3e0027 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1595,6 +1595,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
-- 
2.40.0

Reply via email to