AMD General Applied. Thanks!
> -----Original Message----- > From: Wentao Liang <[email protected]> > Sent: Wednesday, September 16, 2026 5:56 AM > To: Yu, Lang <[email protected]> > Cc: [email protected]; Deucher, Alexander <[email protected]>; > [email protected]; Koenig, Christian > <[email protected]>; [email protected]; linux- > [email protected]; [email protected]; Wentao Liang <[email protected]>; > [email protected] > Subject: [PATCH] drm/amdgpu: Fix last_update fence leak in > amdgpu_vm_init() > > amdgpu_vm_init() initializes vm->last_update, vm->last_unlocked and > vm->last_tlb_flush with references to the stub fence taken via > dma_fence_get_stub(). The error label at the end of the function releases the > last_unlocked and last_tlb_flush references with dma_fence_put(), but the > reference stored in vm->last_update is never dropped, so whenever the page > table root creation, the reservation of the root BO or the PASID registration > fails, the stub fence reference leaks. > > Drop the vm->last_update reference together with the other stub fence > references on the error path. > > Fixes: 187916e6ed9d ("drm/amdgpu: install stub fence into potential unused > fence pointers") > Cc: [email protected] > Signed-off-by: Wentao Liang <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > index fccd758b6699..494197ac20e8 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > @@ -2693,6 +2693,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, > struct amdgpu_vm *vm, > amdgpu_bo_unref(&root_bo); > > error_free_delayed: > + dma_fence_put(vm->last_update); > dma_fence_put(vm->last_tlb_flush); > dma_fence_put(vm->last_unlocked); > ttm_lru_bulk_move_fini(&adev->mman.bdev, &vm->lru_bulk_move); > -- > 2.34.1
