]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdgpu: fix invalid fence handling in amdgpu_vm_tlb_flush
authorLang Yu <lang.yu@amd.com>
Sun, 1 Sep 2024 12:56:07 +0000 (08:56 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Oct 2024 14:32:47 +0000 (16:32 +0200)
[ Upstream commit 4453808d9eab0461dea338e89372ffc4a3c50acc ]

CPU based update doesn't produce a fence, handle such cases properly.

Fixes: d8a3f0a0348d ("drm/amdgpu: implement TLB flush fence")
Signed-off-by: Lang Yu <lang.yu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c

index 0f7106066480eaefa4a509cfea1b7380d47430bf..3fdbc10aebce1d98af5abe5849bd11f2eb94d31b 100644 (file)
@@ -902,10 +902,12 @@ amdgpu_vm_tlb_flush(struct amdgpu_vm_update_params *params,
 {
        struct amdgpu_vm *vm = params->vm;
 
-       if (!fence || !*fence)
+       tlb_cb->vm = vm;
+       if (!fence || !*fence) {
+               amdgpu_vm_tlb_seq_cb(NULL, &tlb_cb->cb);
                return;
+       }
 
-       tlb_cb->vm = vm;
        if (!dma_fence_add_callback(*fence, &tlb_cb->cb,
                                    amdgpu_vm_tlb_seq_cb)) {
                dma_fence_put(vm->last_tlb_flush);