From 278287f045038b64fd4c7e08bf5d9422e7b98e12 Mon Sep 17 00:00:00 2001 From: Harish Kasiviswanathan Date: Thu, 18 Oct 2018 14:03:02 -0400 Subject: [PATCH] libhsakmt: Support device controller cgroup Device whiltelist controller cgroup allows to track and enforce open and mknod restrictions on device files. Tasks should works with /dev/dri/renderN devices that are whitelisted for its cgroup. If a certain node is not whitelisted it is not an error condition. Change-Id: I0b997423ccdc00aee98df5b6f04ed6794549604e Signed-off-by: Harish Kasiviswanathan [ROCm/ROCR-Runtime commit: c1994e28f05fab5241e70d6c940d6257a54d5b45] --- projects/rocr-runtime/src/fmm.c | 5 ++++- projects/rocr-runtime/src/topology.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/projects/rocr-runtime/src/fmm.c b/projects/rocr-runtime/src/fmm.c index dc07f8261b..ed6da56493 100644 --- a/projects/rocr-runtime/src/fmm.c +++ b/projects/rocr-runtime/src/fmm.c @@ -1711,8 +1711,11 @@ int open_drm_render_device(int minor) sprintf(path, "/dev/dri/renderD%d", minor); fd = open(path, O_RDWR | O_CLOEXEC); if (fd < 0) { - if (errno != ENOENT) + if (errno != ENOENT) { + if (errno == EPERM) + pr_info("Check a) User is in \"video\" group b) cgroup permissions\n"); pr_err("Failed to open %s: %s\n", path, strerror(errno)); + } return -errno; } drm_render_fds[index] = fd; diff --git a/projects/rocr-runtime/src/topology.c b/projects/rocr-runtime/src/topology.c index 0580ac7738..0e90f83640 100644 --- a/projects/rocr-runtime/src/topology.c +++ b/projects/rocr-runtime/src/topology.c @@ -595,7 +595,7 @@ static HSAKMT_STATUS topology_sysfs_check_node_supported(uint32_t sysfs_node_id, ret_value = open_drm_render_device(drm_render_minor); if (ret_value > 0) *is_node_supported = true; - else if (ret_value != -ENOENT) + else if (ret_value != -ENOENT && ret_value != -EPERM) ret = HSAKMT_STATUS_ERROR; err: