summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJinzhou Su <jinzhou.su@amd.com>2026-02-10 09:32:40 +0300
committerAlex Deucher <alexander.deucher@amd.com>2026-02-26 00:56:11 +0300
commita1fafed0f529d8f79e7deac762dc53f901fa13ec (patch)
treec9631d4d92255d7b0c3429231ffdf4c1fd4eb260
parent186eb92a1a7fd69d9ee3de04bfc84f55f14367da (diff)
downloadlinux-a1fafed0f529d8f79e7deac762dc53f901fa13ec.tar.xz
drm/amd/ras: Handle address check in SR-IOV guest
Handle address check validity command in SR-IOV guest Signed-off-by: Jinzhou Su <jinzhou.su@amd.com> Reviewed-by: YiPeng Chai <YiPeng.Chai@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c20
-rw-r--r--drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c
index 1cbeb96c16ba..e9c8bd4226da 100644
--- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c
+++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c
@@ -381,6 +381,26 @@ static int amdgpu_virt_ras_get_block_ecc(struct ras_core_context *ras_core,
return RAS_CMD__SUCCESS;
}
+int amdgpu_virt_ras_check_address_validity(struct amdgpu_device *adev,
+ uint64_t address, bool *hit)
+{
+ struct ras_cmd_address_check_req req = {0};
+ struct ras_cmd_address_check_rsp rsp = {0};
+ int ret = 0;
+
+ req.address = address;
+
+ ret = amdgpu_ras_mgr_handle_ras_cmd(adev, RAS_CMD__CHECK_ADDRESS_VALIDITY,
+ &req, sizeof(req), &rsp, sizeof(rsp));
+
+ if (ret)
+ return RAS_CMD__ERROR_GENERIC;
+
+ *hit = rsp.result ? true : false;
+
+ return RAS_CMD__SUCCESS;
+}
+
static struct ras_cmd_func_map amdgpu_virt_ras_cmd_maps[] = {
{RAS_CMD__GET_CPER_SNAPSHOT, amdgpu_virt_ras_get_cper_snapshot},
{RAS_CMD__GET_CPER_RECORD, amdgpu_virt_ras_get_cper_records},
diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.h b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.h
index 482a5fda72ab..8245e0de6a9e 100644
--- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.h
+++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.h
@@ -58,4 +58,6 @@ int amdgpu_virt_ras_pre_reset(struct amdgpu_device *adev);
int amdgpu_virt_ras_post_reset(struct amdgpu_device *adev);
void amdgpu_virt_ras_set_remote_uniras(struct amdgpu_device *adev, bool en);
bool amdgpu_virt_ras_remote_uniras_enabled(struct amdgpu_device *adev);
+int amdgpu_virt_ras_check_address_validity(struct amdgpu_device *adev,
+ uint64_t address, bool *hit);
#endif