drm: Refuse to create zero width/height cmdline modes
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 7 Jun 2019 16:26:09 +0000 (19:26 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 1 Apr 2021 17:29:16 +0000 (20:29 +0300)
If the user specifies zero width/height cmdline mode i915 will
blow up as the fbdev path will bypass the regular fb sanity
check that would otherwise have refused to create a framebuffer
with zero width/height.

The reason I thought to try this is so that I can force a specific
depth for fbdev without actually having to hardcode the mode
on the kernel cmdline. Eg. if I pass video=0x0-8 I will get an
8bpp framebuffer at my monitor's native resolution.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190607162611.23514-2-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_modes.c

index 1ac67d4505e073933dd79d9e2ad21cf96f78844c..33a93fa24eb153f3e2dcd18dec87925758b5acc7 100644 (file)
@@ -1864,6 +1864,9 @@ drm_mode_create_from_cmdline_mode(struct drm_device *dev,
 {
        struct drm_display_mode *mode;
 
+       if (cmd->xres == 0 || cmd->yres == 0)
+               return NULL;
+
        if (cmd->cvt)
                mode = drm_cvt_mode(dev,
                                    cmd->xres, cmd->yres,