We can disable various queues via debugfs for IGT testing, but in
doing so, we race with the kernel for VM updates or buffer moves.

Fixes: d2e3961ae371 ("drm/amdgpu: add amdgpu_sdma_sched_mask debugfs")
Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 25 ++++--------------------
 1 file changed, 4 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
index 8b8a04138711c..4f98d4920f5cf 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
@@ -350,9 +350,8 @@ int amdgpu_sdma_ras_sw_init(struct amdgpu_device *adev)
 static int amdgpu_debugfs_sdma_sched_mask_set(void *data, u64 val)
 {
        struct amdgpu_device *adev = (struct amdgpu_device *)data;
-       u64 i, num_ring;
+       u64 num_ring;
        u64 mask = 0;
-       struct amdgpu_ring *ring, *page = NULL;
 
        if (!adev)
                return -ENODEV;
@@ -372,25 +371,9 @@ static int amdgpu_debugfs_sdma_sched_mask_set(void *data, 
u64 val)
 
        if ((val & mask) == 0)
                return -EINVAL;
-
-       for (i = 0; i < adev->sdma.num_instances; ++i) {
-               ring = &adev->sdma.instance[i].ring;
-               if (adev->sdma.has_page_queue)
-                       page = &adev->sdma.instance[i].page;
-               if (val & BIT_ULL(i * num_ring))
-                       ring->sched.ready = true;
-               else
-                       ring->sched.ready = false;
-
-               if (page) {
-                       if (val & BIT_ULL(i * num_ring + 1))
-                               page->sched.ready = true;
-                       else
-                               page->sched.ready = false;
-               }
-       }
-       /* publish sched.ready flag update effective immediately across smp */
-       smp_rmb();
+       /* Just return success here. We can't disable any rings otherwise
+        * we race with vm udpates or buffer ops.
+        */
        return 0;
 }
 
-- 
2.50.0

Reply via email to