From f4894a83d288cdc3b11a224539afaaa2d5da629e Mon Sep 17 00:00:00 2001
From: John Clements <john.clements@amd.com>
Date: Thu, 7 May 2020 17:09:16 +0800
Subject: [PATCH] drm/amdgpu: Fix bug in RAS invoke

Invoke sequence should abort when ras interrupt is detected before reading TA host shared memory

Signed-off-by: John Clements <john.clements@amd.com>
Change-Id: Icad555d3de108b75b981da3594d9c7c3a3f98cf1
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index f061ad6750ed..cade87caed0b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -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");
-- 
2.17.1

