[PATCH 1/2] drm/amdgpu: cleanup amdgpu_xgmi_sysfs_add_dev_info

Luben Tuikov luben.tuikov at amd.com
Wed Jan 26 12:50:44 UTC 2022


Yeah, that's cleaner.

Reviewed-by: Luben Tuikov <luben.tuikov at amd.com>

Regards,
Luben

On 2022-01-26 06:59, Christian König wrote:
> Don't initialize variables if it isn't absolutely necessary.
>
> Use amdgpu_xgmi_sysfs_rem_dev_info to cleanup when something goes wrong.
>
> Drop the explicit warnings since the sysfs core warns about things like
> duplicate files itself.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 85 +++++++++---------------
>  1 file changed, 33 insertions(+), 52 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> index 5929d6f528c9..68509f619ba3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> @@ -289,61 +289,10 @@ static ssize_t amdgpu_xgmi_show_error(struct device *dev,
>  static DEVICE_ATTR(xgmi_device_id, S_IRUGO, amdgpu_xgmi_show_device_id, NULL);
>  static DEVICE_ATTR(xgmi_error, S_IRUGO, amdgpu_xgmi_show_error, NULL);
>  
> -static int amdgpu_xgmi_sysfs_add_dev_info(struct amdgpu_device *adev,
> -					 struct amdgpu_hive_info *hive)
> -{
> -	int ret = 0;
> -	char node[10] = { 0 };
> -
> -	/* Create xgmi device id file */
> -	ret = device_create_file(adev->dev, &dev_attr_xgmi_device_id);
> -	if (ret) {
> -		dev_err(adev->dev, "XGMI: Failed to create device file xgmi_device_id\n");
> -		return ret;
> -	}
> -
> -	/* Create xgmi error file */
> -	ret = device_create_file(adev->dev, &dev_attr_xgmi_error);
> -	if (ret)
> -		pr_err("failed to create xgmi_error\n");
> -
> -
> -	/* Create sysfs link to hive info folder on the first device */
> -	if (hive->kobj.parent != (&adev->dev->kobj)) {
> -		ret = sysfs_create_link(&adev->dev->kobj, &hive->kobj,
> -					"xgmi_hive_info");
> -		if (ret) {
> -			dev_err(adev->dev, "XGMI: Failed to create link to hive info");
> -			goto remove_file;
> -		}
> -	}
> -
> -	sprintf(node, "node%d", atomic_read(&hive->number_devices));
> -	/* Create sysfs link form the hive folder to yourself */
> -	ret = sysfs_create_link(&hive->kobj, &adev->dev->kobj, node);
> -	if (ret) {
> -		dev_err(adev->dev, "XGMI: Failed to create link from hive info");
> -		goto remove_link;
> -	}
> -
> -	goto success;
> -
> -
> -remove_link:
> -	sysfs_remove_link(&adev->dev->kobj, adev_to_drm(adev)->unique);
> -
> -remove_file:
> -	device_remove_file(adev->dev, &dev_attr_xgmi_device_id);
> -
> -success:
> -	return ret;
> -}
> -
>  static void amdgpu_xgmi_sysfs_rem_dev_info(struct amdgpu_device *adev,
>  					  struct amdgpu_hive_info *hive)
>  {
>  	char node[10];
> -	memset(node, 0, sizeof(node));
>  
>  	device_remove_file(adev->dev, &dev_attr_xgmi_device_id);
>  	device_remove_file(adev->dev, &dev_attr_xgmi_error);
> @@ -353,10 +302,42 @@ static void amdgpu_xgmi_sysfs_rem_dev_info(struct amdgpu_device *adev,
>  
>  	sprintf(node, "node%d", atomic_read(&hive->number_devices));
>  	sysfs_remove_link(&hive->kobj, node);
> -
>  }
>  
> +static int amdgpu_xgmi_sysfs_add_dev_info(struct amdgpu_device *adev,
> +					 struct amdgpu_hive_info *hive)
> +{
> +	char node[10];
> +	int r;
> +
> +	r = device_create_file(adev->dev, &dev_attr_xgmi_device_id);
> +	if (r)
> +		return r;
> +
> +	r = device_create_file(adev->dev, &dev_attr_xgmi_error);
> +	if (r)
> +		goto error;
>  
> +	/* Create sysfs link to hive info folder on the first device */
> +	if (hive->kobj.parent != (&adev->dev->kobj)) {
> +		r = sysfs_create_link(&adev->dev->kobj, &hive->kobj,
> +				      "xgmi_hive_info");
> +		if (r)
> +			goto error;
> +	}
> +
> +	/* Create sysfs link form the hive folder to yourself */
> +	sprintf(node, "node%d", atomic_read(&hive->number_devices));
> +	r = sysfs_create_link(&hive->kobj, &adev->dev->kobj, node);
> +	if (r)
> +		goto error;
> +
> +	return 0;
> +
> +error:
> +	amdgpu_xgmi_sysfs_rem_dev_info(adev, hive);
> +	return r;
> +}
>  
>  struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev)
>  {

Regards,
-- 
Luben



More information about the amd-gfx mailing list