From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f68.google.com ([74.125.82.68]:33250 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753801AbcKNL3f (ORCPT ); Mon, 14 Nov 2016 06:29:35 -0500 Received: by mail-wm0-f68.google.com with SMTP id u144so14414071wmu.0 for ; Mon, 14 Nov 2016 03:29:34 -0800 (PST) From: Chris Wilson To: intel-gfx@lists.freedesktop.org Cc: Chris Wilson , Imre Deak , stable@vger.kernel.org Subject: [PATCH] drm/i915: Don't touch NULL sg on i915_gem_object_get_pages_gtt() error Date: Mon, 14 Nov 2016 11:29:30 +0000 Message-Id: <20161114112930.2033-1-chris@chris-wilson.co.uk> In-Reply-To: <20161114111455.GA13441@mwanda> References: <20161114111455.GA13441@mwanda> Sender: stable-owner@vger.kernel.org List-ID: On the DMA mapping error path, sg may be NULL (it has already been marked as the last scatterlist entry), and we should avoid dereferencing it again. Reported-by: Dan Carpenter Fixes: e227330223a7 ("drm/i915: avoid leaking DMA mappings") Signed-off-by: Chris Wilson Cc: Imre Deak Cc: stable@vger.kernel.org --- drivers/gpu/drm/i915/i915_gem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 888d7f79f36d..7c57ba9ed2ea 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2383,7 +2383,7 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj) page = shmem_read_mapping_page(mapping, i); if (IS_ERR(page)) { ret = PTR_ERR(page); - goto err_pages; + goto err_sg; } } if (!i || @@ -2417,8 +2417,9 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj) return st; -err_pages: +err_sg: sg_mark_end(sg); +err_pages: for_each_sgt_page(page, sgt_iter, st) { set_page_private(page, 0); put_page(page); -- 2.10.2