This is a note to let you know that I've just added the patch titled

    drm/tegra: gem: dumb: pitch and size are outputs

to the 3.18-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-tegra-gem-dumb-pitch-and-size-are-outputs.patch
and it can be found in the queue-3.18 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From dc6057ecb39edb34b0461ca55382094410bd257a Mon Sep 17 00:00:00 2001
From: Thierry Reding <[email protected]>
Date: Thu, 30 Oct 2014 15:32:56 +0100
Subject: drm/tegra: gem: dumb: pitch and size are outputs

From: Thierry Reding <[email protected]>

commit dc6057ecb39edb34b0461ca55382094410bd257a upstream.

When creating a dumb buffer object using the DRM_IOCTL_MODE_CREATE_DUMB
IOCTL, only the width, height, bpp and flags parameters are inputs. The
caller is not guaranteed to zero out or set handle, pitch and size, so
the driver must not treat these values as possible inputs.

Fixes a bug where running the Weston compositor on Tegra DRM would cause
an attempt to allocate a 3 GiB framebuffer to be allocated.

Fixes: de2ba664c30f ("gpu: host1x: drm: Add memory manager and fb")
Signed-off-by: Thierry Reding <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/gpu/drm/tegra/gem.c |   10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

--- a/drivers/gpu/drm/tegra/gem.c
+++ b/drivers/gpu/drm/tegra/gem.c
@@ -259,16 +259,12 @@ void tegra_bo_free_object(struct drm_gem
 int tegra_bo_dumb_create(struct drm_file *file, struct drm_device *drm,
                         struct drm_mode_create_dumb *args)
 {
-       int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
+       unsigned int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
        struct tegra_drm *tegra = drm->dev_private;
        struct tegra_bo *bo;
 
-       min_pitch = round_up(min_pitch, tegra->pitch_align);
-       if (args->pitch < min_pitch)
-               args->pitch = min_pitch;
-
-       if (args->size < args->pitch * args->height)
-               args->size = args->pitch * args->height;
+       args->pitch = round_up(min_pitch, tegra->pitch_align);
+       args->size = args->pitch * args->height;
 
        bo = tegra_bo_create_with_handle(file, drm, args->size, 0,
                                         &args->handle);


Patches currently in stable-queue which might be from [email protected] are

queue-3.18/arm-tegra-re-add-removed-soc-id-macro-to-tegra_resume.patch
queue-3.18/drm-tegra-gem-dumb-pitch-and-size-are-outputs.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to