drm/amdgpu: Remove redundant .ras_fini initialization in some ras blocks
authoryipechai <YiPeng.Chai@amd.com>
Thu, 17 Feb 2022 07:40:12 +0000 (15:40 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 2 Mar 2022 23:40:06 +0000 (18:40 -0500)
1. Define amdgpu_ras_block_late_fini_default in amdgpu_ras.c as
   .ras_fini common function, which is called when
   .ras_fini of ras block isn't initialized.
2. Remove the code of using amdgpu_ras_block_late_fini to
   initialize .ras_fini in ras blocks.

Signed-off-by: yipechai <YiPeng.Chai@amd.com>
Reviewed-by: Tao Zhou <tao.zhou1@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c
drivers/gpu/drm/amd/amdgpu/mca_v3_0.c
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c

index bbbf22860c413915bdac0e8e2d443540d532a901..d78c2970e5585a49060404ad654164183f8dd0af 100644 (file)
@@ -2477,6 +2477,12 @@ void amdgpu_ras_block_late_fini(struct amdgpu_device *adev,
                amdgpu_ras_interrupt_remove_handler(adev, ras_block);
 }
 
+static void amdgpu_ras_block_late_fini_default(struct amdgpu_device *adev,
+                         struct ras_common_if *ras_block)
+{
+       return amdgpu_ras_block_late_fini(adev, ras_block);
+}
+
 /* do some init work after IP late init as dependence.
  * and it runs in resume/gpu reset/booting up cases.
  */
@@ -2584,6 +2590,8 @@ int amdgpu_ras_fini(struct amdgpu_device *adev)
                        if (amdgpu_ras_is_supported(adev, obj->ras_comm.block) &&
                            obj->ras_fini)
                                obj->ras_fini(adev, &obj->ras_comm);
+                       else
+                               amdgpu_ras_block_late_fini_default(adev, &obj->ras_comm);
                }
 
                /* Clear ras blocks from ras_list and free ras block list node */
index 05dc76f6fdc61a514166b3e6d3be80c60b9326d1..05c0d6e2c75caa4ab16ce7e41a208b7f56129858 100644 (file)
@@ -975,6 +975,5 @@ struct amdgpu_xgmi_ras xgmi_ras = {
                },
                .hw_ops = &xgmi_ras_hw_ops,
                .ras_late_init = amdgpu_xgmi_ras_late_init,
-               .ras_fini = amdgpu_ras_block_late_fini,
        },
 };
index f0cc073e6bb03a750b71952068ede43ba081b7c4..8def7f630d4c266116f088d2487378b0c17120fd 100644 (file)
@@ -2204,10 +2204,6 @@ static int gfx_v9_0_gpu_early_init(struct amdgpu_device *adev)
                if (!adev->gfx.ras->ras_block.ras_late_init)
                        adev->gfx.ras->ras_block.ras_late_init = amdgpu_gfx_ras_late_init;
 
-               /* If not define special ras_fini function, use gfx default ras_fini */
-               if (!adev->gfx.ras->ras_block.ras_fini)
-                       adev->gfx.ras->ras_block.ras_fini = amdgpu_ras_block_late_fini;
-
                /* If not defined special ras_cb function, use default ras_cb */
                if (!adev->gfx.ras->ras_block.ras_cb)
                        adev->gfx.ras->ras_block.ras_cb = amdgpu_gfx_process_ras_data_cb;
index d4ffe08f9fb57a9e7404f660bf763525b648cceb..f60b7bd4dbf587719cd0f0dfd3402b5716c9502a 100644 (file)
@@ -683,10 +683,6 @@ static void gmc_v10_0_set_umc_funcs(struct amdgpu_device *adev)
                if (!adev->umc.ras->ras_block.ras_late_init)
                                adev->umc.ras->ras_block.ras_late_init = amdgpu_umc_ras_late_init;
 
-               /* If don't define special ras_fini function, use default ras_fini */
-               if (!adev->umc.ras->ras_block.ras_fini)
-                       adev->umc.ras->ras_block.ras_fini = amdgpu_ras_block_late_fini;
-
                /* If not defined special ras_cb function, use default ras_cb */
                if (!adev->umc.ras->ras_block.ras_cb)
                        adev->umc.ras->ras_block.ras_cb = amdgpu_umc_process_ras_data_cb;
index 1b7a59e427e58274639c68b875dd86ddc448db8f..e3b78b4cbd648205b6e3f7ee7a6370d0f7ecdba5 100644 (file)
@@ -1243,10 +1243,6 @@ static void gmc_v9_0_set_umc_funcs(struct amdgpu_device *adev)
                if (!adev->umc.ras->ras_block.ras_late_init)
                                adev->umc.ras->ras_block.ras_late_init = amdgpu_umc_ras_late_init;
 
-               /* If don't define special ras_fini function, use default ras_fini */
-               if (!adev->umc.ras->ras_block.ras_fini)
-                       adev->umc.ras->ras_block.ras_fini = amdgpu_ras_block_late_fini;
-
                /* If not defined special ras_cb function, use default ras_cb */
                if (!adev->umc.ras->ras_block.ras_cb)
                        adev->umc.ras->ras_block.ras_cb = amdgpu_umc_process_ras_data_cb;
@@ -1292,10 +1288,6 @@ static void gmc_v9_0_set_mmhub_ras_funcs(struct amdgpu_device *adev)
                adev->mmhub.ras->ras_block.ras_comm.block = AMDGPU_RAS_BLOCK__MMHUB;
                adev->mmhub.ras->ras_block.ras_comm.type = AMDGPU_RAS_ERROR__MULTI_UNCORRECTABLE;
                adev->mmhub.ras_if = &adev->mmhub.ras->ras_block.ras_comm;
-
-               /* If don't define special ras_fini function, use default ras_fini */
-               if (!adev->mmhub.ras->ras_block.ras_fini)
-                       adev->mmhub.ras->ras_block.ras_fini = amdgpu_ras_block_late_fini;
        }
 }
 
index d1e27133b2caade5429d5bcd483e6a8db3b306c7..0462166352625dfe335504a416f6d6f08e6ab23b 100644 (file)
@@ -166,7 +166,6 @@ struct amdgpu_hdp_ras hdp_v4_0_ras = {
                        .type = AMDGPU_RAS_ERROR__MULTI_UNCORRECTABLE,
                },
                .hw_ops = &hdp_v4_0_ras_hw_ops,
-               .ras_fini = amdgpu_ras_block_late_fini,
        },
 };
 
index 5ce6778a821d9e00e1de4cb6f58176e68580e2ef..d4bd7d1d26495b9b21a8d638ddfcd47c43f21736 100644 (file)
@@ -66,7 +66,6 @@ struct amdgpu_mca_ras_block mca_v3_0_mp0_ras = {
                },
                .hw_ops = &mca_v3_0_mp0_hw_ops,
                .ras_block_match = mca_v3_0_ras_block_match,
-               .ras_fini = amdgpu_ras_block_late_fini,
        },
 };
 
@@ -93,7 +92,6 @@ struct amdgpu_mca_ras_block mca_v3_0_mp1_ras = {
                },
                .hw_ops = &mca_v3_0_mp1_hw_ops,
                .ras_block_match = mca_v3_0_ras_block_match,
-               .ras_fini = amdgpu_ras_block_late_fini,
        },
 };
 
@@ -120,7 +118,6 @@ struct amdgpu_mca_ras_block mca_v3_0_mpio_ras = {
                },
                .hw_ops = &mca_v3_0_mpio_hw_ops,
                .ras_block_match = mca_v3_0_ras_block_match,
-               .ras_fini = amdgpu_ras_block_late_fini,
        },
 };
 
index 485fd9239cd5238de34059e491465e9ebe396cd2..b31df4db01fb3add70ffea457949b50a5ac35ab7 100644 (file)
@@ -671,7 +671,6 @@ struct amdgpu_nbio_ras nbio_v7_4_ras = {
                },
                .hw_ops = &nbio_v7_4_ras_hw_ops,
                .ras_late_init = amdgpu_nbio_ras_late_init,
-               .ras_fini = amdgpu_ras_block_late_fini,
        },
        .handle_ras_controller_intr_no_bifring = nbio_v7_4_handle_ras_controller_intr_no_bifring,
        .handle_ras_err_event_athub_intr_no_bifring = nbio_v7_4_handle_ras_err_event_athub_intr_no_bifring,
index 206acb6a5b2039cf08c8f0a371cbf2eda1e89bbc..01b385568c14dd42d7294d955fbfed4275b5cb72 100644 (file)
@@ -2822,10 +2822,6 @@ static void sdma_v4_0_set_ras_funcs(struct amdgpu_device *adev)
                if (!adev->sdma.ras->ras_block.ras_late_init)
                        adev->sdma.ras->ras_block.ras_late_init = amdgpu_sdma_ras_late_init;
 
-               /* If don't define special ras_fini function, use default ras_fini */
-               if (!adev->sdma.ras->ras_block.ras_fini)
-                       adev->sdma.ras->ras_block.ras_fini = amdgpu_ras_block_late_fini;
-
                /* If not defined special ras_cb function, use default ras_cb */
                if (!adev->sdma.ras->ras_block.ras_cb)
                        adev->sdma.ras->ras_block.ras_cb = amdgpu_sdma_process_ras_data_cb;