diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index 167e6ebba23f8..4bbbc45e37581 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@ -975,7 +975,11 @@ static void amdgpu_vm_free_table(struct amdgpu_vm_pt *entry) { if (entry->base.bo) { entry->base.bo->vm_bo = NULL; + + spin_lock(&entry->base.vm->invalidated_lock); list_del(&entry->base.vm_status); + spin_unlock(&entry->base.vm->invalidated_lock); + amdgpu_bo_unref(&entry->base.bo->shadow); amdgpu_bo_unref(&entry->base.bo); }