From: Jinzhou Su Date: Tue, 10 Feb 2026 06:32:40 +0000 (+0800) Subject: drm/amd/ras: Handle address check in SR-IOV guest X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a1fafed0f529d8f79e7deac762dc53f901fa13ec;p=thirdparty%2Fkernel%2Flinux.git drm/amd/ras: Handle address check in SR-IOV guest Handle address check validity command in SR-IOV guest Signed-off-by: Jinzhou Su Reviewed-by: YiPeng Chai Signed-off-by: Alex Deucher --- 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 1cbeb96c16ba1..e9c8bd4226da1 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 482a5fda72abf..8245e0de6a9ed 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