drm/amdgpu/gfx: only call mes for enforce isolation if supported
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 13 Feb 2025 18:37:01 +0000 (13:37 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 17 Feb 2025 19:08:28 +0000 (14:08 -0500)
This should not be called on chips without MES so check if
MES is enabled and if the cleaner shader is supported.

Fixes: 8521e3c5f058 ("drm/amd/amdgpu: limit single process inside MES")
Reviewed-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: Shaoyun Liu <shaoyun.liu@amd.com>
Cc: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c

index 27f5318c3a26c7753ccadf2885dcaac150283c5a..b9bd6654f3172a745c4d478da03fa19238ac9d20 100644 (file)
@@ -1670,11 +1670,13 @@ static ssize_t amdgpu_gfx_set_enforce_isolation(struct device *dev,
                if (adev->enforce_isolation[i] && !partition_values[i]) {
                        /* Going from enabled to disabled */
                        amdgpu_vmid_free_reserved(adev, AMDGPU_GFXHUB(i));
-                       amdgpu_mes_set_enforce_isolation(adev, i, false);
+                       if (adev->enable_mes && adev->gfx.enable_cleaner_shader)
+                               amdgpu_mes_set_enforce_isolation(adev, i, false);
                } else if (!adev->enforce_isolation[i] && partition_values[i]) {
                        /* Going from disabled to enabled */
                        amdgpu_vmid_alloc_reserved(adev, AMDGPU_GFXHUB(i));
-                       amdgpu_mes_set_enforce_isolation(adev, i, true);
+                       if (adev->enable_mes && adev->gfx.enable_cleaner_shader)
+                               amdgpu_mes_set_enforce_isolation(adev, i, true);
                }
                adev->enforce_isolation[i] = partition_values[i];
        }