Initialize the userq xcp_id.
Signed-off-by: Prike Liang <[email protected]>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
index de6848b4fd67..cd0ae8a77c37 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
@@ -585,6 +585,17 @@ static int amdgpu_userq_priority_permit(struct drm_file
*filp,
return -EACCES;
}
+
+static u32 amdgpu_userq_get_xcp_id(struct amdgpu_fpriv *fpriv)
+{
+ /*
+ * The enforce-isolation userq path uses idx 0 for non-partitioned
+ * devices, matching the gfx ring isolation handling.
+ */
+ return fpriv->xcp_id == AMDGPU_XCP_NO_PARTITION ? 0 :
+ fpriv->xcp_id;
+}
+
static int
amdgpu_userq_create(struct drm_file *filp, union drm_amdgpu_userq *args)
{
@@ -629,6 +640,7 @@ amdgpu_userq_create(struct drm_file *filp, union
drm_amdgpu_userq *args)
queue->queue_type = args->in.ip_type;
queue->vm = &fpriv->vm;
queue->priority = priority;
+ queue->xcp_id = amdgpu_userq_get_xcp_id(fpriv);
queue->userq_mgr = uq_mgr;
INIT_DELAYED_WORK(&queue->hang_detect_work,
amdgpu_userq_hang_detect_work);
--
2.34.1