There is an error path in igt_ppgtt_alloc(), which leads
to ww object being passed down to i915_gem_ww_ctx_fini() without
initialization. Correct that by only putting ppgtt->vm and
returning early.

Fixes: 480ae79537b2 ("drm/i915/selftests: Prepare gtt tests for obj->mm.lock 
removal")
Signed-off-by: Krzysztof Karas <krzysztof.ka...@intel.com>
Reviewed-by: Mikolaj Wasiak <mikolaj.was...@intel.com>
---
Changelog:
 * v1 -> v2:
        Avoid calling i915_gem_ww_ctx_fini() with zeroed context
        by returning early (Sebastian).

 * v2 -> v3:
        Use an additional label for clenup path (Mikolaj).

 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c 
b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
index 5816d515203a..7ab4c4e60264 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
@@ -168,7 +168,7 @@ static int igt_ppgtt_alloc(void *arg)
                return PTR_ERR(ppgtt);
 
        if (!ppgtt->vm.allocate_va_range)
-               goto err_ppgtt_cleanup;
+               goto ppgtt_vm_put;
 
        /*
         * While we only allocate the page tables here and so we could
@@ -236,7 +236,7 @@ static int igt_ppgtt_alloc(void *arg)
                        goto retry;
        }
        i915_gem_ww_ctx_fini(&ww);
-
+ppgtt_vm_put:
        i915_vm_put(&ppgtt->vm);
        return err;
 }
-- 
2.43.0

Reply via email to