drm/amdgpu: Unmap legacy queue when MES is enabled
authorLuben Tuikov <luben.tuikov@amd.com>
Mon, 16 May 2022 18:36:36 +0000 (14:36 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 18 May 2022 19:20:18 +0000 (15:20 -0400)
This fixes a kernel oops when MES is not enabled.

Reported-by: Kenny Ho <Kenny.Ho@amd.com>
Suggested-by: Jack Xiao <Jack.Xiao@amd.com>
Reviewed-by: Alex Deucher <Alexander.Deucher@amd.com>
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Fixes: 18ee4ce63e0f32 ("drm/amdgpu: add mes unmap legacy queue routine")
Fixes: 3d879e81f0f9ed ("drm/amdgpu: add init support for GFX11 (v2)")
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c

index 4b66b9c..65a4126 100644 (file)
@@ -3568,7 +3568,7 @@ static void gfx10_kiq_unmap_queues(struct amdgpu_ring *kiq_ring,
        struct amdgpu_device *adev = kiq_ring->adev;
        uint32_t eng_sel = ring->funcs->type == AMDGPU_RING_TYPE_GFX ? 4 : 0;
 
-       if (!adev->gfx.kiq.ring.sched.ready) {
+       if (adev->enable_mes && !adev->gfx.kiq.ring.sched.ready) {
                amdgpu_mes_unmap_legacy_queue(adev, ring, action, gpu_addr, seq);
                return;
        }
index 8a1bec7..8773cbd 100644 (file)
@@ -191,7 +191,7 @@ static void gfx11_kiq_unmap_queues(struct amdgpu_ring *kiq_ring,
        struct amdgpu_device *adev = kiq_ring->adev;
        uint32_t eng_sel = ring->funcs->type == AMDGPU_RING_TYPE_GFX ? 4 : 0;
 
-       if (!adev->gfx.kiq.ring.sched.ready) {
+       if (adev->enable_mes && !adev->gfx.kiq.ring.sched.ready) {
                amdgpu_mes_unmap_legacy_queue(adev, ring, action, gpu_addr, seq);
                return;
        }