summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
diff options
context:
space:
mode:
authorYang Wang <kevinyang.wang@amd.com>2024-01-23 09:31:26 +0300
committerAlex Deucher <alexander.deucher@amd.com>2024-01-25 22:58:02 +0300
commit6eb726a082e5e75fbeeb4137986f74d289d74091 (patch)
tree68ec4985bd26ba67e3b14195dc7c6e03fc6cfe64 /drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
parent4b09715f1504f1b6e8dff0e9643630610bc05141 (diff)
downloadlinux-6eb726a082e5e75fbeeb4137986f74d289d74091.tar.xz
drm/amdgpu: add aca sysfs remove support
add aca sysfs remove support. Fixes: 37973b69eab4 ("drm/amdgpu: add aca sysfs support") Signed-off-by: Yang Wang <kevinyang.wang@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
index d2662f4d3d75..bf1ca6839406 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
@@ -613,7 +613,7 @@ int amdgpu_aca_add_handle(struct amdgpu_device *adev, struct aca_handle *handle,
return add_aca_sysfs(adev, handle);
}
-static void remove_aca(struct aca_handle *handle)
+static void remove_aca_handle(struct aca_handle *handle)
{
struct aca_handle_manager *mgr = handle->mgr;
@@ -622,12 +622,24 @@ static void remove_aca(struct aca_handle *handle)
mgr->nr_handles--;
}
+static void remove_aca_sysfs(struct aca_handle *handle)
+{
+ struct amdgpu_device *adev = handle->adev;
+ struct device_attribute *aca_attr = &handle->aca_attr;
+
+ if (adev->dev->kobj.sd)
+ sysfs_remove_file_from_group(&adev->dev->kobj,
+ &aca_attr->attr,
+ "ras");
+}
+
void amdgpu_aca_remove_handle(struct aca_handle *handle)
{
if (!handle || list_empty(&handle->node))
return;
- remove_aca(handle);
+ remove_aca_sysfs(handle);
+ remove_aca_handle(handle);
}
static int aca_manager_init(struct aca_handle_manager *mgr)
@@ -643,7 +655,7 @@ static void aca_manager_fini(struct aca_handle_manager *mgr)
struct aca_handle *handle, *tmp;
list_for_each_entry_safe(handle, tmp, &mgr->list, node)
- remove_aca(handle);
+ amdgpu_aca_remove_handle(handle);
}
bool amdgpu_aca_is_enabled(struct amdgpu_device *adev)