OSDN Git Service

drm/amdgpu: Fix bug in RAS invoke
authorJohn Clements <john.clements@amd.com>
Thu, 7 May 2020 10:25:13 +0000 (18:25 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 7 May 2020 20:24:16 +0000 (16:24 -0400)
Invoke sequence should abort when ras interrupt is detected before reading TA host shared memory

Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: John Clements <john.clements@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c

index f061ad6..cade87c 100644 (file)
@@ -759,15 +759,15 @@ int psp_ras_invoke(struct psp_context *psp, uint32_t ta_cmd_id)
 
        ret = psp_ta_invoke(psp, ta_cmd_id, psp->ras.session_id);
 
+       if (amdgpu_ras_intr_triggered())
+               return ret;
+
        if (ras_cmd->if_version > RAS_TA_HOST_IF_VER)
        {
                DRM_WARN("RAS: Unsupported Interface");
                return -EINVAL;
        }
 
-       if (amdgpu_ras_intr_triggered())
-               return ret;
-
        if (!ret) {
                if (ras_cmd->ras_out_message.flags.err_inject_switch_disable_flag) {
                        dev_warn(psp->adev->dev, "ECC switch disabled\n");