[PATCH 12/12] drm/amdgpu: Remove redundant .ras_fini initialization in some ras blocks

Zhou1, Tao Tao.Zhou1 at amd.com
Fri Feb 25 06:49:34 UTC 2022


[AMD Official Use Only]

Other than my suggestions, the series is:

Reviewed-by: Tao Zhou <tao.zhou1 at amd.com>

> -----Original Message-----
> From: Chai, Thomas <YiPeng.Chai at amd.com>
> Sent: Monday, February 21, 2022 6:16 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Chai, Thomas <YiPeng.Chai at amd.com>; Zhang, Hawking
> <Hawking.Zhang at amd.com>; Zhou1, Tao <Tao.Zhou1 at amd.com>; Clements,
> John <John.Clements at amd.com>; Chai, Thomas <YiPeng.Chai at amd.com>
> Subject: [PATCH 12/12] drm/amdgpu: Remove redundant .ras_fini initialization
> in some ras blocks
> 
> 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 at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c  | 8 ++++++++
> drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 1 -
>  drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c    | 4 ----
>  drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c   | 4 ----
>  drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c    | 8 --------
>  drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c    | 1 -
>  drivers/gpu/drm/amd/amdgpu/mca_v3_0.c    | 3 ---
>  drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c   | 1 -
>  drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c   | 4 ----
>  9 files changed, 8 insertions(+), 26 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> index 846f51b0c013..17f7c0259115 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> @@ -2477,6 +2477,12 @@ void amdgpu_ras_block_late_fini(struct
> amdgpu_device *adev,
>  		amdgpu_ras_interrupt_remove_handler(adev, ras_block);  }
> 
> +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.
>   */
> @@ -2586,6 +2592,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 */
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> index c04d98e3bd9d..8abdab6869e9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
> @@ -950,6 +950,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,
>  	},
>  };
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> index f0cc073e6bb0..8def7f630d4c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> @@ -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; diff --git
> a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> index c8ad824328d7..d9353bb99314 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> @@ -681,10 +681,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; diff --git
> a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> index b01767d78153..4c3483fbe613 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> @@ -1241,10 +1241,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; @@ -1290,10 +1286,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;
>  	}
>  }
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c
> b/drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c
> index 86c166ae794a..04bc615f3af0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c
> @@ -163,7 +163,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,
>  	},
>  };
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/mca_v3_0.c
> b/drivers/gpu/drm/amd/amdgpu/mca_v3_0.c
> index 5ce6778a821d..d4bd7d1d2649 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mca_v3_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mca_v3_0.c
> @@ -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,
>  	},
>  };
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c
> b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c
> index 485fd9239cd5..b31df4db01fb 100644
> --- a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c
> +++ b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c
> @@ -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,
> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> index 206acb6a5b20..01b385568c14 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
> @@ -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;
> --
> 2.25.1


More information about the amd-gfx mailing list