Message ID | 20220706150253.2186-4-deller@gmx.de (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | fbcon: Fixes for screen resolution changes | expand |
Hi Helge, On Wed, Jul 6, 2022 at 5:02 PM Helge Deller <deller@gmx.de> wrote: > Verify that the fbdev or drm driver correctly adjusted the virtual > screen sizes. On failure report the failing driver and reject the screen > size change. > > Signed-off-by: Helge Deller <deller@gmx.de> > --- a/drivers/video/fbdev/core/fbmem.c > +++ b/drivers/video/fbdev/core/fbmem.c > @@ -1016,6 +1016,17 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var) > if (ret) > return ret; > > + /* verify that virtual resolution >= physical resolution */ > + if (var->xres_virtual < var->xres || > + var->yres_virtual < var->yres) { > + pr_warn("WARNING: fbcon: Driver '%s' missed to adjust virtual" > + " screen size (%dx%d vs. %dx%d)\n", %ux%u cs. %ux%u Please don't split messages, for easier grepping. > + info->fix.id, > + var->xres_virtual, var->yres_virtual, > + var->xres, var->yres); > + return -EINVAL; > + } > + > if ((var->activate & FB_ACTIVATE_MASK) != FB_ACTIVATE_NOW) > return 0; With the above fixed: Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c index 160389365a36..612b54c23ac7 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -1016,6 +1016,17 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var) if (ret) return ret; + /* verify that virtual resolution >= physical resolution */ + if (var->xres_virtual < var->xres || + var->yres_virtual < var->yres) { + pr_warn("WARNING: fbcon: Driver '%s' missed to adjust virtual" + " screen size (%dx%d vs. %dx%d)\n", + info->fix.id, + var->xres_virtual, var->yres_virtual, + var->xres, var->yres); + return -EINVAL; + } + if ((var->activate & FB_ACTIVATE_MASK) != FB_ACTIVATE_NOW) return 0;
Verify that the fbdev or drm driver correctly adjusted the virtual screen sizes. On failure report the failing driver and reject the screen size change. Signed-off-by: Helge Deller <deller@gmx.de> Cc: stable@vger.kernel.org # v5.4+ --- drivers/video/fbdev/core/fbmem.c | 11 +++++++++++ 1 file changed, 11 insertions(+) -- 2.35.3