{
        int ret;
        struct psp_gfx_cmd_resp *cmd;
+       struct ta_ras_shared_memory *ras_cmd;
 
        /*
         * TODO: bypass the loading in sriov for now
        ret = psp_cmd_submit_buf(psp, NULL, cmd,
                        psp->fence_buf_mc_addr);
 
+       ras_cmd = (struct ta_ras_shared_memory*)psp->ras.ras_shared_buf;
+
        if (!ret) {
-               psp->ras.ras_initialized = true;
                psp->ras.session_id = cmd->resp.session_id;
+
+               if (!ras_cmd->ras_status)
+                       psp->ras.ras_initialized = true;
+               else
+                       dev_warn(psp->adev->dev, "RAS Init Status: 0x%X\n", ras_cmd->ras_status);
        }
 
+       if (ret || ras_cmd->ras_status)
+               amdgpu_ras_fini(psp->adev);
+
        kfree(cmd);
 
        return ret;