Commit 6a375399 authored by YiPeng Chai's avatar YiPeng Chai Committed by Alex Deucher
Browse files

drm/amdgpu: Fix the issue of missing ras message on sriov host



This code only applies to amdgpu processing
poison consumption after uniras is enabled,
but not to sriov.

Signed-off-by: default avatarYiPeng Chai <YiPeng.Chai@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 2b198d45
Loading
Loading
Loading
Loading
+0 −15
Original line number Diff line number Diff line
@@ -36,7 +36,6 @@
#include "amdgpu_ras.h"
#include "amdgpu_umc.h"
#include "amdgpu_reset.h"
#include "amdgpu_ras_mgr.h"

/* Total memory size in system memory and all GPU VRAM. Used to
 * estimate worst case amount of memory to reserve for page tables
@@ -747,20 +746,6 @@ void amdgpu_amdkfd_ras_pasid_poison_consumption_handler(struct amdgpu_device *ad
				enum amdgpu_ras_block block, uint16_t pasid,
				pasid_notify pasid_fn, void *data, uint32_t reset)
{

	if (amdgpu_uniras_enabled(adev)) {
		struct ras_ih_info ih_info;

		memset(&ih_info, 0, sizeof(ih_info));
		ih_info.block = block;
		ih_info.pasid = pasid;
		ih_info.reset = reset;
		ih_info.pasid_fn = pasid_fn;
		ih_info.data = data;
		amdgpu_ras_mgr_handle_consumer_interrupt(adev, &ih_info);
		return;
	}

	amdgpu_umc_pasid_poison_handler(adev, block, pasid, pasid_fn, data, reset);
}

+10 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include <linux/sort.h>
#include "amdgpu.h"
#include "umc_v6_7.h"
#include "amdgpu_ras_mgr.h"
#define MAX_UMC_POISON_POLLING_TIME_SYNC   20  //ms

#define MAX_UMC_HASH_STRING_SIZE  256
@@ -273,6 +274,15 @@ int amdgpu_umc_pasid_poison_handler(struct amdgpu_device *adev,
			}

			amdgpu_ras_error_data_fini(&err_data);
		} else if (amdgpu_uniras_enabled(adev)) {
			struct ras_ih_info ih_info = {0};

			ih_info.block = block;
			ih_info.pasid = pasid;
			ih_info.reset = reset;
			ih_info.pasid_fn = pasid_fn;
			ih_info.data = data;
			amdgpu_ras_mgr_handle_consumer_interrupt(adev, &ih_info);
		} else {
			struct amdgpu_ras *con = amdgpu_ras_get_context(adev);
			int ret;