]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdgpu/sdma: handle paging queues in amdgpu_sdma_reset_engine()
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 9 Jun 2025 16:13:04 +0000 (12:13 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Aug 2025 14:38:39 +0000 (16:38 +0200)
[ Upstream commit 9a9e87d15297ce72507178e93cbb773510c061cd ]

Need to properly start and stop paging queues if they are present.

This is not an issue today since we don't support a paging queue
on any chips with queue reset.

Fixes: b22659d5d352 ("drm/amdgpu: switch amdgpu_sdma_reset_engine to use the new sdma function pointers")
Reviewed-by: Jesse Zhang <Jesse.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c

index 9b54a1ece447fb98c596e660df8dc653f1f73703..f7decf533bae84d27152813c93cdd7e816522480 100644 (file)
@@ -597,8 +597,11 @@ int amdgpu_sdma_reset_engine(struct amdgpu_device *adev, uint32_t instance_id)
                page_sched_stopped = true;
        }
 
-       if (sdma_instance->funcs->stop_kernel_queue)
+       if (sdma_instance->funcs->stop_kernel_queue) {
                sdma_instance->funcs->stop_kernel_queue(gfx_ring);
+               if (adev->sdma.has_page_queue)
+                       sdma_instance->funcs->stop_kernel_queue(page_ring);
+       }
 
        /* Perform the SDMA reset for the specified instance */
        ret = amdgpu_sdma_soft_reset(adev, instance_id);
@@ -607,8 +610,11 @@ int amdgpu_sdma_reset_engine(struct amdgpu_device *adev, uint32_t instance_id)
                goto exit;
        }
 
-       if (sdma_instance->funcs->start_kernel_queue)
+       if (sdma_instance->funcs->start_kernel_queue) {
                sdma_instance->funcs->start_kernel_queue(gfx_ring);
+               if (adev->sdma.has_page_queue)
+                       sdma_instance->funcs->start_kernel_queue(page_ring);
+       }
 
 exit:
        /* Restart the scheduler's work queue for the GFX and page rings