[PATCH Review 1/1] drm/amdgpu/pm: add asic smu support check

Paul Menzel pmenzel at molgen.mpg.de
Mon Mar 21 06:14:33 UTC 2022


Dear Stanley,


Thank you for your patch.


Am 21.03.22 um 06:45 schrieb Stanley.Yang:

Some nits:

Could you please remove the dot from the name:

     $ git config --global user.name "Stanley Yang"
     $ git commit --amend -s --author="Stanley Yang <Stanley.Yang at amd.com>"

The prefix drm/amd/pm seems to be more common for changes in the file. 
Instead of *add … check*, you can also just use the verb *check*:

drm/amd/pm: Check ASIC SMU support

> It must check asic whether support smu
> before call smu powerplay function, otherwise
> it may cause null point on no support smu asic.

Please reflow for 75 characters per line. Also maybe write:

… it may cause a null pointer dereference on systems without an SMU ASIC.

(I am no native speaker myself though.)

On what device did you reproduce this null pointer dereference?

> Change-Id: Ib86f3d4c88317b23eb1040b9ce1c5c8dcae42488

Without documenting the Gerrit instance, the Change-Id is of no use.

I guess this also should go to the stable series? Please add a Fixes tag 
with the commit missing these checks.

> Signed-off-by: Stanley.Yang <Stanley.Yang at amd.com>
> ---
>   drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/pm/amdgpu_dpm.c b/drivers/gpu/drm/amd/pm/amdgpu_dpm.c
> index 89fbee568be4..c73fb73e9628 100644
> --- a/drivers/gpu/drm/amd/pm/amdgpu_dpm.c
> +++ b/drivers/gpu/drm/amd/pm/amdgpu_dpm.c
> @@ -500,6 +500,9 @@ int amdgpu_dpm_send_hbm_bad_pages_num(struct amdgpu_device *adev, uint32_t size)
>   	struct smu_context *smu = adev->powerplay.pp_handle;
>   	int ret = 0;
>   
> +	if (!is_support_sw_smu(adev))
> +		return -EOPNOTSUPP;
> +

I wonder, why `struct smu_context *smu = adev->powerplay.pp_handle` 
seems to work further up? Maybe the assignment should also be moved 
after the newly introduced check?

>   	mutex_lock(&adev->pm.mutex);
>   	ret = smu_send_hbm_bad_pages_num(smu, size);
>   	mutex_unlock(&adev->pm.mutex);
> @@ -512,6 +515,9 @@ int amdgpu_dpm_send_hbm_bad_channel_flag(struct amdgpu_device *adev, uint32_t si
>   	struct smu_context *smu = adev->powerplay.pp_handle;
>   	int ret = 0;
>   
> +	if (!is_support_sw_smu(adev))
> +		return -EOPNOTSUPP;
> +
>   	mutex_lock(&adev->pm.mutex);
>   	ret = smu_send_hbm_bad_channel_flag(smu, size);
>   	mutex_unlock(&adev->pm.mutex);


Kind regards,

Paul


More information about the amd-gfx mailing list