This reverts commit daf19be40e04. SVM VRAM ranges leave AMDGPU_PTE_SYSTEM clear and then call amdgpu_gmc_get_vm_pte() with a NULL buffer object. The GFX 12.1 PTE helper sets the bit for an A+A VF, so the special case in svm_range_get_pte_flags() is the wrong place.
Signed-off-by: Zhigang Luo <[email protected]> --- drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c index 876476046926..a5aed7853775 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@ -1398,13 +1398,7 @@ svm_range_get_pte_flags(struct kfd_node *node, struct amdgpu_vm *vm, mapping_flags |= AMDGPU_VM_PAGE_EXECUTABLE; pte_flags = AMDGPU_PTE_VALID; - /* SPM-backed VRAM is accessed through the system memory path and - * requires the SYSTEM bit. - */ - if (amdgpu_virt_vram_is_spm(node->adev)) - pte_flags |= AMDGPU_PTE_SYSTEM; - else - pte_flags |= (domain == SVM_RANGE_VRAM_DOMAIN) ? 0 : AMDGPU_PTE_SYSTEM; + pte_flags |= (domain == SVM_RANGE_VRAM_DOMAIN) ? 0 : AMDGPU_PTE_SYSTEM; pte_flags |= snoop ? AMDGPU_PTE_SNOOPED : 0; if (gc_ip_version >= IP_VERSION(12, 0, 0)) pte_flags |= AMDGPU_PTE_IS_PTE; -- 2.43.0
