[PATCH] drm/amdgpu: optimize list operation in amdgpu_xgmi

Felix Kuehling felix.kuehling at amd.com
Wed Feb 3 13:53:44 UTC 2021


Looks good to me. I see some more redundant code in that function, if
you want to clean it up further:
>         hive = kzalloc(sizeof(*hive), GFP_KERNEL);
>         if (!hive) {
>                 dev_err(adev->dev, "XGMI: allocation failed\n");
>                 hive = NULL;
No need to set hive to NULL. The condition above is only true if it's
already NULL. Also you don't need to print error messages for
out-of-memory errors, because kzalloc will be very noisy if it fails anyway.

>                 goto pro_end;
>         }

Either way, this patch is:
Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>

Am 2021-02-03 um 4:42 a.m. schrieb Kevin Wang:
> simplify the list opertion.
>
> Signed-off-by: Kevin Wang <kevin1.wang at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> index 541ef6be390f..659b385b27b5 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> @@ -324,7 +324,7 @@ static void amdgpu_xgmi_sysfs_rem_dev_info(struct amdgpu_device *adev,
>  
>  struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev)
>  {
> -	struct amdgpu_hive_info *hive = NULL, *tmp = NULL;
> +	struct amdgpu_hive_info *hive = NULL;
>  	int ret;
>  
>  	if (!adev->gmc.xgmi.hive_id)
> @@ -337,11 +337,9 @@ struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev)
>  
>  	mutex_lock(&xgmi_mutex);
>  
> -	if (!list_empty(&xgmi_hive_list)) {
> -		list_for_each_entry_safe(hive, tmp, &xgmi_hive_list, node)  {
> -			if (hive->hive_id == adev->gmc.xgmi.hive_id)
> -				goto pro_end;
> -		}
> +	list_for_each_entry(hive, &xgmi_hive_list, node)  {
> +		if (hive->hive_id == adev->gmc.xgmi.hive_id)
> +			goto pro_end;
>  	}
>  
>  	hive = kzalloc(sizeof(*hive), GFP_KERNEL);


More information about the amd-gfx mailing list