From 303f30e11e0d0b89775f7266f456963c8b695218 Mon Sep 17 00:00:00 2001 From: Rajesh Devaraj Date: Mon, 28 Nov 2022 19:23:19 +0000 Subject: [PATCH] gpu: nvgpu: update emulate sysfs node For emulate sysfs node, perform create/remove operations only when NVGPU_SUPPORT_EMULATE_MODE is enabled. JIRA NVGPU-9283 Change-Id: I5f7a713fb51554f013cd27d10c807e556f3ded56 Signed-off-by: Rajesh Devaraj Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2817895 Reviewed-by: svcacv Reviewed-by: Seema Khowala GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/os/linux/sysfs.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/nvgpu/os/linux/sysfs.c b/drivers/gpu/nvgpu/os/linux/sysfs.c index 585523048..c39854837 100644 --- a/drivers/gpu/nvgpu/os/linux/sysfs.c +++ b/drivers/gpu/nvgpu/os/linux/sysfs.c @@ -1484,6 +1484,8 @@ static DEVICE_ATTR(emulate_mode, ROOTRW, emulate_mode_read, emulate_mode_store); void nvgpu_remove_sysfs(struct device *dev) { + struct gk20a *g = get_gk20a(dev); + device_remove_file(dev, &dev_attr_elcg_enable); device_remove_file(dev, &dev_attr_blcg_enable); device_remove_file(dev, &dev_attr_slcg_enable); @@ -1531,7 +1533,10 @@ void nvgpu_remove_sysfs(struct device *dev) device_remove_file(dev, &dev_attr_mig_mode_config_list_parsable); device_remove_file(dev, &dev_attr_mig_mode_config); #endif - device_remove_file(dev, &dev_attr_emulate_mode); + if (nvgpu_is_enabled(g, NVGPU_SUPPORT_EMULATE_MODE)) { + device_remove_file(dev, &dev_attr_emulate_mode); + } + if (strcmp(dev_name(dev), "gpu.0")) { struct kobject *kobj = &dev->kobj; struct device *parent = container_of((kobj->parent), @@ -1600,7 +1605,10 @@ int nvgpu_create_sysfs(struct device *dev) error |= device_create_file(dev, &dev_attr_mig_mode_config_list_parsable); error |= device_create_file(dev, &dev_attr_mig_mode_config); #endif - error |= device_create_file(dev, &dev_attr_emulate_mode); + if (nvgpu_is_enabled(g, NVGPU_SUPPORT_EMULATE_MODE)) { + error |= device_create_file(dev, &dev_attr_emulate_mode); + } + if (strcmp(dev_name(dev), "gpu.0")) { struct kobject *kobj = &dev->kobj; struct device *parent = container_of((kobj->parent),