SI hardware doesn't support pasids, user mode queues, or
KIQ/MES so there is no need for this.  Doing so results in
a segfault as these callbacks are non-existent for SI.

Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4744
Fixes: f3854e04b708 ("drm/amdgpu: attach tlb fence to the PTs update")
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 6a2ea200d90c8..0eccb31793ca7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1069,7 +1069,9 @@ amdgpu_vm_tlb_flush(struct amdgpu_vm_update_params 
*params,
        }
 
        /* Prepare a TLB flush fence to be attached to PTs */
-       if (!params->unlocked) {
+       if (!params->unlocked &&
+           /* SI doesn't support pasid or KIQ/MES */
+           params->adev->family > AMDGPU_FAMILY_SI) {
                amdgpu_vm_tlb_fence_create(params->adev, vm, fence);
 
                /* Makes sure no PD/PT is freed before the flush */
-- 
2.51.1

Reply via email to