RE: [PATCH 4/6] drm/amdgpu: skip RAS error injection in SRIOV

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[AMD Official Use Only - General]

It might be better check amdgpu_sriov_vf from the beginning of the function. Return 0 directly if it is invoked from guest side. Don't need to print out something, error injection from guest is invalid.

Regards,
Hawking

-----Original Message-----
From: Zhou1, Tao <Tao.Zhou1@xxxxxxx>
Sent: Wednesday, December 7, 2022 18:04
To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Zhang, Hawking <Hawking.Zhang@xxxxxxx>; Yang, Stanley <Stanley.Yang@xxxxxxx>; Wan, Gavin <Gavin.Wan@xxxxxxx>; Chander, Vignesh <Vignesh.Chander@xxxxxxx>; Yu, David <David.Yu@xxxxxxx>
Cc: Zhou1, Tao <Tao.Zhou1@xxxxxxx>
Subject: [PATCH 4/6] drm/amdgpu: skip RAS error injection in SRIOV

And return successful status.

Signed-off-by: Tao Zhou <tao.zhou1@xxxxxxx>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index ad490c1e2f57..854cff9e7ebd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -1103,15 +1103,24 @@ int amdgpu_ras_error_inject(struct amdgpu_device *adev,
                                                          block_info.address);
        }

-       if (info->head.block == AMDGPU_RAS_BLOCK__GFX) {
-               if (block_obj->hw_ops->ras_error_inject)
-                       ret = block_obj->hw_ops->ras_error_inject(adev, info);
+       if (amdgpu_sriov_vf(adev)) {
+               dev_info(adev->dev, "RAS injection is skipped in SRIOV\n");
+               ret = 0;
        } else {
-               /* If defined special ras_error_inject(e.g: xgmi), implement special ras_error_inject */
-               if (block_obj->hw_ops->ras_error_inject)
-                       ret = block_obj->hw_ops->ras_error_inject(adev, &block_info);
-               else  /*If not defined .ras_error_inject, use default ras_error_inject*/
-                       ret = psp_ras_trigger_error(&adev->psp, &block_info);
+               if (info->head.block == AMDGPU_RAS_BLOCK__GFX) {
+                       if (block_obj->hw_ops->ras_error_inject)
+                               ret = block_obj->hw_ops->ras_error_inject(adev, info);
+               } else {
+                       /* If defined special ras_error_inject(e.g: xgmi),
+                        * implement special ras_error_inject
+                        */
+                       if (block_obj->hw_ops->ras_error_inject)
+                               ret = block_obj->hw_ops->ras_error_inject(adev, &block_info);
+                       else   /* If not defined .ras_error_inject, use default
+                               * ras_error_inject
+                               */
+                               ret = psp_ras_trigger_error(&adev->psp, &block_info);
+               }
        }

        if (ret)
--
2.35.1





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux