In function psp_init_cap_microcode(), it should bail out when failed to
load firmware, otherwise it may cause invalid memory access.

Signed-off-by: Jiang Liu <ge...@linux.alibaba.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index 0d1eb7b8e59b..952da6c7943d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -3838,9 +3838,10 @@ int psp_init_cap_microcode(struct psp_context *psp, 
const char *chip_name)
                if (err == -ENODEV) {
                        dev_warn(adev->dev, "cap microcode does not exist, 
skip\n");
                        err = 0;
-                       goto out;
+               } else {
+                       dev_err(adev->dev, "fail to initialize cap 
microcode\n");
                }
-               dev_err(adev->dev, "fail to initialize cap microcode\n");
+               goto out;
        }
 
        info = &adev->firmware.ucode[AMDGPU_UCODE_ID_CAP];
-- 
2.43.5

Reply via email to