Commit 1ed0e176 authored by Tao Zhou's avatar Tao Zhou Committed by Alex Deucher
Browse files

drm/amdgpu: remove ras_error_status parameter for UMC poison handler



Make the code simpler.

Signed-off-by: default avatarTao Zhou <tao.zhou1@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent ae45a18b
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -753,9 +753,7 @@ bool amdgpu_amdkfd_have_atomics_support(struct amdgpu_device *adev)

void amdgpu_amdkfd_ras_poison_consumption_handler(struct amdgpu_device *adev, bool reset)
{
	struct ras_err_data err_data = {0, 0, 0, NULL};

	amdgpu_umc_poison_handler(adev, &err_data, reset);
	amdgpu_umc_poison_handler(adev, reset);
}

bool amdgpu_amdkfd_ras_query_utcl2_poison_status(struct amdgpu_device *adev)
+1 −2
Original line number Diff line number Diff line
@@ -1561,7 +1561,6 @@ static void amdgpu_ras_interrupt_poison_consumption_handler(struct ras_manager *
{
	bool poison_stat = false;
	struct amdgpu_device *adev = obj->adev;
	struct ras_err_data err_data = {0, 0, 0, NULL};
	struct amdgpu_ras_block_object *block_obj =
		amdgpu_ras_get_ras_block(adev, obj->head.block, 0);

@@ -1584,7 +1583,7 @@ static void amdgpu_ras_interrupt_poison_consumption_handler(struct ras_manager *
	}

	if (!adev->gmc.xgmi.connected_to_cpu)
		amdgpu_umc_poison_handler(adev, &err_data, false);
		amdgpu_umc_poison_handler(adev, false);

	if (block_obj->hw_ops->handle_poison_consumption)
		poison_stat = block_obj->hw_ops->handle_poison_consumption(adev);
+5 −8
Original line number Diff line number Diff line
@@ -165,25 +165,22 @@ static int amdgpu_umc_do_page_retirement(struct amdgpu_device *adev,
	return AMDGPU_RAS_SUCCESS;
}

int amdgpu_umc_poison_handler(struct amdgpu_device *adev,
		void *ras_error_status,
		bool reset)
int amdgpu_umc_poison_handler(struct amdgpu_device *adev, bool reset)
{
	int ret = AMDGPU_RAS_SUCCESS;

	if (!adev->gmc.xgmi.connected_to_cpu) {
		struct ras_err_data *err_data = (struct ras_err_data *)ras_error_status;
		struct ras_err_data err_data = {0, 0, 0, NULL};
		struct ras_common_if head = {
			.block = AMDGPU_RAS_BLOCK__UMC,
		};
		struct ras_manager *obj = amdgpu_ras_find_obj(adev, &head);

		ret =
			amdgpu_umc_do_page_retirement(adev, ras_error_status, NULL, reset);
		ret = amdgpu_umc_do_page_retirement(adev, &err_data, NULL, reset);

		if (ret == AMDGPU_RAS_SUCCESS && obj) {
			obj->err_data.ue_count += err_data->ue_count;
			obj->err_data.ce_count += err_data->ce_count;
			obj->err_data.ue_count += err_data.ue_count;
			obj->err_data.ce_count += err_data.ce_count;
		}
	} else if (reset) {
		/* MCA poison handler is only responsible for GPU reset,
+1 −3
Original line number Diff line number Diff line
@@ -83,9 +83,7 @@ struct amdgpu_umc {
};

int amdgpu_umc_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *ras_block);
int amdgpu_umc_poison_handler(struct amdgpu_device *adev,
		void *ras_error_status,
		bool reset);
int amdgpu_umc_poison_handler(struct amdgpu_device *adev, bool reset);
int amdgpu_umc_process_ecc_irq(struct amdgpu_device *adev,
		struct amdgpu_irq_src *source,
		struct amdgpu_iv_entry *entry);