Blob Blame History Raw
From 54209b6f7277a6f4bdcb88979a4e07cc71144f5a Mon Sep 17 00:00:00 2001
From: John Clements <john.clements@amd.com>
Date: Thu, 7 May 2020 18:25:13 +0800
Subject: drm/amdgpu: Fix bug in RAS invoke
Git-commit: 624e8c8703b5236e000f447d69d183f2c7c28355
Patch-mainline: v5.8-rc1
References: jsc#SLE-12680, jsc#SLE-12880, jsc#SLE-12882, jsc#SLE-12883, jsc#SLE-13496, jsc#SLE-15322

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>
Signed-off-by: Patrik Jakobsson <pjakobsson@suse.de>
---
 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.28.0