Re: [PATCH 1/7] drm/i915: Fix the offset issue for the stolen GEM objects

Jesse Barnes
2014-01-28T00:30:17Z

On Mon, 13 Jan 2014 16:24:45 +0530
akash.goel@intel.com wrote:

> From: Akash Goel <akash.goel@intel.com>
>
> 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: Akash Goel <akash.goel@intel.com>
> ---
> drivers/gpu/drm/i915/i915_gem_stolen.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c
> index fed87ec..1a24e84 100644
> --- a/drivers/gpu/drm/i915/i915_gem_stolen.c
> +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
> @@ -250,7 +250,7 @@ i915_pages_create_for_stolen(struct drm_device *dev,
> }
>
> sg = st->sgl;
> - sg->offset = offset;
> + sg->offset = 0;
> sg->length = size;
>
> sg_dma_address(sg) = (dma_addr_t)dev_priv->mm.stolen_base + offset;

Let's get this upstream and cc stable.

Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>

--
Jesse Barnes, Intel Open Source Technology Center