Return RAS TA injection result to userspace that avoid app continue to load work once injection failed.
Signed-off-by: Stanley.Yang <[email protected]> --- drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c | 3 +++ drivers/gpu/drm/amd/ras/rascore/ras_psp.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c index ef09a6fad659..11f01b2ec211 100644 --- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c +++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c @@ -686,6 +686,9 @@ int amdgpu_ras_mgr_handle_ras_cmd(struct amdgpu_device *adev, if (!ret && !cmd_ctx->cmd_res && output && (out_size == cmd_ctx->output_size)) memcpy(output, cmd_ctx->output_buff_raw, cmd_ctx->output_size); + if (cmd_ctx->cmd_res && cmd_id == RAS_CMD__INJECT_ERROR) + ret = cmd_ctx->cmd_res; + kfree(cmd_ctx); return ret; diff --git a/drivers/gpu/drm/amd/ras/rascore/ras_psp.c b/drivers/gpu/drm/amd/ras/rascore/ras_psp.c index 5d556e2a7000..e26fe8107ac7 100644 --- a/drivers/gpu/drm/amd/ras/rascore/ras_psp.c +++ b/drivers/gpu/drm/amd/ras/rascore/ras_psp.c @@ -417,6 +417,11 @@ static int send_ras_ta_runtime_cmd(struct ras_core_context *ras_core, if (!ras_cmd->ras_status && out && out_size) memcpy(out, &ras_cmd->ras_out_message, out_size); + if (ras_cmd->ras_status == TA_RAS_STATUS__TEE_ERROR_ACCESS_DENIED) + ret = -EACCES; + else if (ras_cmd->ras_status) + ret = -EINVAL; + __check_ras_ta_cmd_resp(ras_core, ras_cmd); unlock: -- 2.43.0
