From: Ville Syrjälä <[email protected]>

Reject dumb buffers that exceed the declared maximum framebuffer
size. Such a buffer would anyway get rejected later, assuming
it got fully wrapped into a framebuffer.

Cc: Daniel Stone <[email protected]>
Signed-off-by: Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_plane.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_plane.c 
b/drivers/gpu/drm/i915/display/intel_plane.c
index f12f8300a7c4..3325d1bc9666 100644
--- a/drivers/gpu/drm/i915/display/intel_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_plane.c
@@ -1709,9 +1709,16 @@ int intel_plane_atomic_check(struct intel_atomic_state 
*state)
 int intel_plane_dumb_create(struct intel_display *display,
                            struct drm_mode_create_dumb *args)
 {
+       const struct drm_mode_config *mode_config = &display->drm->mode_config;
        int cpp = DIV_ROUND_UP(args->bpp, 8);
        u32 format;
 
+       if (args->width > mode_config->max_width)
+               return -EINVAL;
+
+       if (args->height > mode_config->max_height)
+               return -EINVAL;
+
        switch (cpp) {
        case 1:
                format = DRM_FORMAT_C8;
-- 
2.49.1

Reply via email to