[PATCH] drm/amdgpu:remove debugfs file in amdgpu_device_finish
Sun, Gary
Gary.Sun at amd.com
Tue Nov 7 07:23:16 UTC 2017
Hi Christian,
The patch is for driver re- initialize feature, not for driver exit or rmmod. When the driver initialize failed at some point, the re- initialize feature will do some little clean and then try to initialize driver again, then it will re-register some registered debugfs , so it will fail.
Regards,
Gary
-----Original Message-----
From: Koenig, Christian
Sent: Monday, November 06, 2017 5:26 PM
To: Sun, Gary <Gary.Sun at amd.com>; amd-gfx at lists.freedesktop.org
Subject: Re: [PATCH] drm/amdgpu:remove debugfs file in amdgpu_device_finish
Am 06.11.2017 um 10:20 schrieb Gary Sun:
> remove debugfs file in amdgpu_device_finish
NAK, the debugfs files are removed automatically by drm_debugfs_cleanup().
So that patch is unnecessary.
Regards,
Christian.
>
> Signed-off-by: Gary Sun <Gary.Sun at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 18 ++++++++++++++++++
> 2 files changed, 19 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 4f919d3..6cfcb5f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -1250,6 +1250,7 @@ struct amdgpu_debugfs {
> int amdgpu_debugfs_add_files(struct amdgpu_device *adev,
> const struct drm_info_list *files,
> unsigned nfiles);
> +int amdgpu_debugfs_cleanup_files(struct amdgpu_device *adev);
> int amdgpu_debugfs_fence_init(struct amdgpu_device *adev);
>
> #if defined(CONFIG_DEBUG_FS)
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 7b7439f..ee800ab 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2520,6 +2520,7 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
> amdgpu_doorbell_fini(adev);
> amdgpu_pm_sysfs_fini(adev);
> amdgpu_debugfs_regs_cleanup(adev);
> + amdgpu_debugfs_cleanup_files(adev);
> }
>
>
> @@ -3304,6 +3305,23 @@ int amdgpu_debugfs_add_files(struct amdgpu_device *adev,
> return 0;
> }
>
> +int amdgpu_debugfs_cleanup_files(struct amdgpu_device *adev) {
> + unsigned int i;
> +
> + for (i = 0; i < adev->debugfs_count; i++) { #if
> +defined(CONFIG_DEBUG_FS)
> + drm_debugfs_remove_files(adev->debugfs[i].files,
> + adev->debugfs[i].num_files,
> + adev->ddev->primary);
> +#endif
> + adev->debugfs[i].files = NUL;
> + adev->debugfs[i].num_files = 0;
> + }
> + adev->debugfs_count = 0;
> + return 0;
> +}
> +
> #if defined(CONFIG_DEBUG_FS)
>
> static ssize_t amdgpu_debugfs_regs_read(struct file *f, char __user
> *buf,
More information about the amd-gfx
mailing list