Skip to content

Commit 2420489

Browse files
icklejnikula
authored andcommitted
drm/i915: Don't touch NULL sg on i915_gem_object_get_pages_gtt() error
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 <dan.carpenter@oracle.com> Fixes: e227330 ("drm/i915: avoid leaking DMA mappings") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Imre Deak <imre.deak@intel.com> Cc: stable@vger.kernel.org Link: http://patchwork.freedesktop.org/patch/msgid/20161114112930.2033-1-chris@chris-wilson.co.uk Reviewed-by: Matthew Auld <matthew.auld@intel.com> (cherry picked from commit b17993b) Signed-off-by: Jani Nikula <jani.nikula@intel.com>
1 parent e5517c2 commit 2420489

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

drivers/gpu/drm/i915/i915_gem.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2268,7 +2268,7 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
22682268
page = shmem_read_mapping_page(mapping, i);
22692269
if (IS_ERR(page)) {
22702270
ret = PTR_ERR(page);
2271-
goto err_pages;
2271+
goto err_sg;
22722272
}
22732273
}
22742274
#ifdef CONFIG_SWIOTLB
@@ -2311,8 +2311,9 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
23112311

23122312
return 0;
23132313

2314-
err_pages:
2314+
err_sg:
23152315
sg_mark_end(sg);
2316+
err_pages:
23162317
for_each_sgt_page(page, sgt_iter, st)
23172318
put_page(page);
23182319
sg_free_table(st);

0 commit comments

Comments
 (0)