Thomas Zimmermann 7a5d53
From dcafbd50f2e4d5cc964aae409fb5691b743fba23 Mon Sep 17 00:00:00 2001
Thomas Zimmermann 7a5d53
From: Felix Kuehling <Felix.Kuehling@amd.com>
Thomas Zimmermann 7a5d53
Date: Thu, 5 Sep 2019 19:22:02 -0400
Thomas Zimmermann 7a5d53
Subject: drm/amdgpu: Fix KFD-related kernel oops on Hawaii
Thomas Zimmermann 7a5d53
MIME-Version: 1.0
Thomas Zimmermann 7a5d53
Content-Type: text/plain; charset=UTF-8
Thomas Zimmermann 7a5d53
Content-Transfer-Encoding: 8bit
Thomas Zimmermann 7a5d53
Git-commit: dcafbd50f2e4d5cc964aae409fb5691b743fba23
Thomas Zimmermann 7a5d53
Patch-mainline: v5.4-rc1
Thomas Zimmermann 7a5d53
References: bsc#1152489
Thomas Zimmermann 7a5d53
Thomas Zimmermann 7a5d53
Hawaii needs to flush caches explicitly, submitting an IB in a user
Thomas Zimmermann 7a5d53
VMID from kernel mode. There is no s_fence in this case.
Thomas Zimmermann 7a5d53
Thomas Zimmermann 7a5d53
Fixes: eb3961a57424 ("drm/amdgpu: remove fence context from the job")
Thomas Zimmermann 7a5d53
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Thomas Zimmermann 7a5d53
Reviewed-by: Christian König <christian.koenig@amd.com>
Thomas Zimmermann 7a5d53
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Thomas Zimmermann 7a5d53
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Thomas Zimmermann 7a5d53
---
Thomas Zimmermann 7a5d53
 drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 3 ++-
Thomas Zimmermann 7a5d53
 1 file changed, 2 insertions(+), 1 deletion(-)
Thomas Zimmermann 7a5d53
Thomas Zimmermann 7a5d53
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
Thomas Zimmermann 7a5d53
index 7850084a05e3..60655834d649 100644
Thomas Zimmermann 7a5d53
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
Thomas Zimmermann 7a5d53
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
Thomas Zimmermann 7a5d53
@@ -143,7 +143,8 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
Thomas Zimmermann 7a5d53
 	/* ring tests don't use a job */
Thomas Zimmermann 7a5d53
 	if (job) {
Thomas Zimmermann 7a5d53
 		vm = job->vm;
Thomas Zimmermann 7a5d53
-		fence_ctx = job->base.s_fence->scheduled.context;
Thomas Zimmermann 7a5d53
+		fence_ctx = job->base.s_fence ?
Thomas Zimmermann 7a5d53
+			job->base.s_fence->scheduled.context : 0;
Thomas Zimmermann 7a5d53
 	} else {
Thomas Zimmermann 7a5d53
 		vm = NULL;
Thomas Zimmermann 7a5d53
 		fence_ctx = 0;
Thomas Zimmermann 7a5d53
-- 
Thomas Zimmermann 7a5d53
2.28.0
Thomas Zimmermann 7a5d53