[PATCH v2] drm/amdgpu: Release 'adev->pm.fw' before return in 'amdgpu_device_need_post()'

Lazar, Lijo lijo.lazar at amd.com
Fri Dec 22 09:00:02 UTC 2023


On 12/21/2023 9:13 PM, Srinivasan Shanmugam wrote:
> In function 'amdgpu_device_need_post(struct amdgpu_device *adev)' -
> 'adev->pm.fw' may not be released before return.
> 
> Using the function release_firmware() to release adev->pm.fw.
> 
> Thus fixing the below:
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:1571 amdgpu_device_need_post() warn: 'adev->pm.fw' from request_firmware() not released on lines: 1554.
> 
> Cc: Monk Liu <Monk.Liu at amd.com>
> Cc: Christian König <christian.koenig at amd.com>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 4b694696930e..f2c3d7ebb218 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -1541,11 +1541,11 @@ bool amdgpu_device_need_post(struct amdgpu_device *adev)
>   			err = request_firmware(&adev->pm.fw, "amdgpu/fiji_smc.bin", adev->dev);
>   			/* force vPost if error occured */
>   			if (err)
> -				return true;
> +				goto fw_release;
>   
>   			fw_ver = *((uint32_t *)adev->pm.fw->data + 69);
>   			if (fw_ver < 0x00160e00)
> -				return true;
> +				goto fw_release;
>   		}
>   	}
>   
> @@ -1568,6 +1568,8 @@ bool amdgpu_device_need_post(struct amdgpu_device *adev)
>   	if ((reg != 0) && (reg != 0xffffffff))
>   		return false;
>   
> +fw_release:
> +	release_firmware(adev->pm.fw);

This won't work for others where request_firmware is not called.

Thanks,
Lijo
>   	return true;
>   }
>   




More information about the amd-gfx mailing list