[Patch v2 1/2] drm/amdgpu: Disable compute partition switch under SRIOV

Rajneesh Bhardwaj rajneesh.bhardwaj at amd.com
Sat Jun 22 15:47:50 UTC 2024


Do not allow the compute partition mode switch from the guest driver but
still allow the query for current_compute_partition.

Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 5 +++++
 drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 9 ++-------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
index 82452606ae6c..1c673c0b65d1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
@@ -1292,6 +1292,11 @@ static ssize_t amdgpu_gfx_set_compute_partition(struct device *dev,
 	enum amdgpu_gfx_partition mode;
 	int ret = 0, num_xcc;
 
+	/* Under SRIOV, this is allowed only via the host driver but not from
+	 * within the VF */
+	if (amdgpu_sriov_vf(adev))
+		return -EPERM;
+
 	num_xcc = NUM_XCC(adev->gfx.xcc_mask);
 	if (num_xcc % 2 != 0)
 		return -EINVAL;
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
index 8d8763ebe027..f87dc1b9d77c 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
@@ -936,11 +936,7 @@ static int gfx_v9_4_3_sw_init(void *handle)
 	if (r)
 		return r;
 
-
-	if (!amdgpu_sriov_vf(adev))
-		r = amdgpu_gfx_sysfs_init(adev);
-
-	return r;
+	return amdgpu_gfx_sysfs_init(adev);
 }
 
 static int gfx_v9_4_3_sw_fini(void *handle)
@@ -961,8 +957,7 @@ static int gfx_v9_4_3_sw_fini(void *handle)
 	gfx_v9_4_3_mec_fini(adev);
 	amdgpu_bo_unref(&adev->gfx.rlc.clear_state_obj);
 	gfx_v9_4_3_free_microcode(adev);
-	if (!amdgpu_sriov_vf(adev))
-		amdgpu_gfx_sysfs_fini(adev);
+	amdgpu_gfx_sysfs_fini(adev);
 
 	return 0;
 }
-- 
2.34.1



More information about the amd-gfx mailing list