Commit ec14ba47 authored by Akash Goel's avatar Akash Goel Committed by Daniel Vetter

drm/i915: Fix the offset issue for the stolen GEM objects

The 'offset' field of the 'scatterlist' structure was wrongly
programmed with the offset value from the base of stolen area,
whereas this field indicates the offset from where the interested
data starts within the first PAGE pointed to by 'scattterlist'
structure. As a result when a new GEM object allocated from stolen
area is mapped to GTT, it could lead to an overwrite of GTT entries
as the page count calculation will go wrong, refer the function
'sg_page_count'.

v2: Modified the commit message. (Chris)
Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
Reviewed-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
Cc: stable@vger.kernel.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71908
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69104Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 372fbb8e
...@@ -250,7 +250,7 @@ i915_pages_create_for_stolen(struct drm_device *dev, ...@@ -250,7 +250,7 @@ i915_pages_create_for_stolen(struct drm_device *dev,
} }
sg = st->sgl; sg = st->sgl;
sg->offset = offset; sg->offset = 0;
sg->length = size; sg->length = size;
sg_dma_address(sg) = (dma_addr_t)dev_priv->mm.stolen_base + offset; sg_dma_address(sg) = (dma_addr_t)dev_priv->mm.stolen_base + offset;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment