diff options
author | Prike Liang <Prike.Liang@amd.com> | 2024-12-02 14:13:02 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2024-12-10 10:26:50 -0500 |
commit | d2382f29ce5467c4e5704eac1f55ad9d3f9ca970 (patch) | |
tree | b9fbce85f79be43970f0321c3066053700ef9a6f /drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | |
parent | a567db808ec9482d8b4ce5f9e5fcbc9e6c5a6da9 (diff) | |
download | linux-d2382f29ce5467c4e5704eac1f55ad9d3f9ca970.tar.gz linux-d2382f29ce5467c4e5704eac1f55ad9d3f9ca970.tar.bz2 linux-d2382f29ce5467c4e5704eac1f55ad9d3f9ca970.zip |
drm/amdgpu: Avoid to release the FW twice in the validated error
There will to release the FW twice when the FW validated error.
Even if the release_firmware() will further validate the FW whether
is empty, but that will be redundant and inefficient.
Signed-off-by: Prike Liang <Prike.Liang@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c index 4c7b53648a50..d3cd76c6dab3 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c @@ -1461,11 +1461,13 @@ int amdgpu_ucode_request(struct amdgpu_device *adev, const struct firmware **fw, return -ENODEV; r = amdgpu_ucode_validate(*fw); - if (r) { + if (r) + /* + * The amdgpu_ucode_request() should be paired with amdgpu_ucode_release() + * regardless of success/failure, and the amdgpu_ucode_release() takes care of + * firmware release and need to avoid redundant release FW operation here. + */ dev_dbg(adev->dev, "\"%s\" failed to validate\n", fname); - release_firmware(*fw); - *fw = NULL; - } return r; } |