From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH 1/7] drm/i915: Fix the offset issue for the stolen GEM objects Date: Mon, 27 Jan 2014 16:30:41 -0800 Message-ID: <20140127163041.18c71a4d@jbarnes-desktop> References: <1389610485-12084-1-git-send-email-akash.goel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from oproxy1-pub.mail.unifiedlayer.com (oproxy1-pub.mail.unifiedlayer.com [66.147.249.253]) by gabe.freedesktop.org (Postfix) with SMTP id E4B5EFC797 for ; Mon, 27 Jan 2014 16:30:17 -0800 (PST) In-Reply-To: <1389610485-12084-1-git-send-email-akash.goel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: akash.goel@intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Mon, 13 Jan 2014 16:24:45 +0530 akash.goel@intel.com wrote: > From: Akash Goel > > 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 > --- > 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 -- Jesse Barnes, Intel Open Source Technology Center