drm/i915: i915_pages_create_for_stolen should return err ptr
authorMatthew Auld <matthew.auld@intel.com>
Fri, 18 Nov 2016 17:02:16 +0000 (17:02 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 18 Nov 2016 20:48:58 +0000 (20:48 +0000)
When gathering the pages from our backing storage we expect get_pages()
to either give us our sg_table or an err ptr. However when gathering our
fake pages for stolen memory we may return NULL in the event of a
failure. To prevent any funny business we should therefore return the
proper err ptr value.

Fixes: 03ac84f1830e ("drm/i915: Pass around sg_table to get_pages/put_pages backend")
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1479488536-6168-1-git-send-email-matthew.auld@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_gem_stolen.c

index 5bc9f69..ebaa941 100644 (file)
@@ -525,11 +525,11 @@ i915_pages_create_for_stolen(struct drm_device *dev,
 
        st = kmalloc(sizeof(*st), GFP_KERNEL);
        if (st == NULL)
-               return NULL;
+               return ERR_PTR(-ENOMEM);
 
        if (sg_alloc_table(st, 1, GFP_KERNEL)) {
                kfree(st);
-               return NULL;
+               return ERR_PTR(-ENOMEM);
        }
 
        sg = st->sgl;