[PATCH] drm/amdgpu:remove debugfs file in amdgpu_device_finish

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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,




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux