This is required to check against cgroup permissions.

Signed-off-by: Harish Kasiviswanathan <[email protected]>
Reviewed-by: Felix Kuehling <[email protected]>
---
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 10 ++++++++++
 drivers/gpu/drm/amd/amdkfd/kfd_topology.h |  3 +++
 2 files changed, 13 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
index f2170f0e4334..8d0cfd391d67 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
@@ -1098,6 +1098,9 @@ static struct kfd_topology_device *kfd_assign_gpu(struct 
kfd_dev *gpu)
 {
        struct kfd_topology_device *dev;
        struct kfd_topology_device *out_dev = NULL;
+       struct kfd_mem_properties *mem;
+       struct kfd_cache_properties *cache;
+       struct kfd_iolink_properties *iolink;
 
        down_write(&topology_lock);
        list_for_each_entry(dev, &topology_device_list, list) {
@@ -1111,6 +1114,13 @@ static struct kfd_topology_device *kfd_assign_gpu(struct 
kfd_dev *gpu)
                if (!dev->gpu && (dev->node_props.simd_count > 0)) {
                        dev->gpu = gpu;
                        out_dev = dev;
+
+                       list_for_each_entry(mem, &dev->mem_props, list)
+                               mem->gpu = dev->gpu;
+                       list_for_each_entry(cache, &dev->cache_props, list)
+                               cache->gpu = dev->gpu;
+                       list_for_each_entry(iolink, &dev->io_link_props, list)
+                               iolink->gpu = dev->gpu;
                        break;
                }
        }
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.h 
b/drivers/gpu/drm/amd/amdkfd/kfd_topology.h
index d4718d58d0f2..15843e0fc756 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.h
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.h
@@ -102,6 +102,7 @@ struct kfd_mem_properties {
        uint32_t                flags;
        uint32_t                width;
        uint32_t                mem_clk_max;
+       struct kfd_dev          *gpu;
        struct kobject          *kobj;
        struct attribute        attr;
 };
@@ -123,6 +124,7 @@ struct kfd_cache_properties {
        uint32_t                cache_latency;
        uint32_t                cache_type;
        uint8_t                 sibling_map[CRAT_SIBLINGMAP_SIZE];
+       struct kfd_dev          *gpu;
        struct kobject          *kobj;
        struct attribute        attr;
 };
@@ -141,6 +143,7 @@ struct kfd_iolink_properties {
        uint32_t                max_bandwidth;
        uint32_t                rec_transfer_size;
        uint32_t                flags;
+       struct kfd_dev          *gpu;
        struct kobject          *kobj;
        struct attribute        attr;
 };
-- 
2.17.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to