drm/amdgpu: Fix KFD-related kernel oops on Hawaii
authorFelix Kuehling <Felix.Kuehling@amd.com>
Thu, 5 Sep 2019 23:22:02 +0000 (19:22 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 17 Sep 2019 19:38:35 +0000 (14:38 -0500)
Hawaii needs to flush caches explicitly, submitting an IB in a user
VMID from kernel mode. There is no s_fence in this case.

Fixes: eb3961a57424 ("drm/amdgpu: remove fence context from the job")
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c

index 7850084a05e3a7c119b1266ff23035147537131f..60655834d6498bc0d8b4d077caee2c4242716b13 100644 (file)
@@ -143,7 +143,8 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
        /* ring tests don't use a job */
        if (job) {
                vm = job->vm;
-               fence_ctx = job->base.s_fence->scheduled.context;
+               fence_ctx = job->base.s_fence ?
+                       job->base.s_fence->scheduled.context : 0;
        } else {
                vm = NULL;
                fence_ctx = 0;