drm/amdgpu: use xcp partition ID for amdgpu_gem
authorJames Zhu <James.Zhu@amd.com>
Mon, 13 Mar 2023 16:03:18 +0000 (12:03 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 14:36:43 +0000 (10:36 -0400)
Find xcp_id from amdgpu_fpriv, use it for amdgpu_gem_object_create.

Signed-off-by: James Zhu <James.Zhu@amd.com>
Acked-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c

index 7e8839c..fec9df3 100644 (file)
@@ -337,7 +337,7 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
 retry:
        r = amdgpu_gem_object_create(adev, size, args->in.alignment,
                                     initial_domain,
-                                    flags, ttm_bo_type_device, resv, &gobj, 0);
+                                    flags, ttm_bo_type_device, resv, &gobj, fpriv->xcp_id + 1);
        if (r && r != -ERESTARTSYS) {
                if (flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) {
                        flags &= ~AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
@@ -380,6 +380,7 @@ int amdgpu_gem_userptr_ioctl(struct drm_device *dev, void *data,
        struct ttm_operation_ctx ctx = { true, false };
        struct amdgpu_device *adev = drm_to_adev(dev);
        struct drm_amdgpu_gem_userptr *args = data;
+       struct amdgpu_fpriv *fpriv = filp->driver_priv;
        struct drm_gem_object *gobj;
        struct hmm_range *range;
        struct amdgpu_bo *bo;
@@ -406,7 +407,7 @@ int amdgpu_gem_userptr_ioctl(struct drm_device *dev, void *data,
 
        /* create a gem object to contain this object in */
        r = amdgpu_gem_object_create(adev, args->size, 0, AMDGPU_GEM_DOMAIN_CPU,
-                                    0, ttm_bo_type_device, NULL, &gobj, 0);
+                                    0, ttm_bo_type_device, NULL, &gobj, fpriv->xcp_id + 1);
        if (r)
                return r;
 
@@ -909,6 +910,7 @@ int amdgpu_mode_dumb_create(struct drm_file *file_priv,
                            struct drm_mode_create_dumb *args)
 {
        struct amdgpu_device *adev = drm_to_adev(dev);
+       struct amdgpu_fpriv *fpriv = file_priv->driver_priv;
        struct drm_gem_object *gobj;
        uint32_t handle;
        u64 flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
@@ -932,7 +934,7 @@ int amdgpu_mode_dumb_create(struct drm_file *file_priv,
        domain = amdgpu_bo_get_preferred_domain(adev,
                                amdgpu_display_supported_domains(adev, flags));
        r = amdgpu_gem_object_create(adev, args->size, 0, domain, flags,
-                                    ttm_bo_type_device, NULL, &gobj, 0);
+                                    ttm_bo_type_device, NULL, &gobj, fpriv->xcp_id + 1);
        if (r)
                return -ENOMEM;