Skip to content

Commit c2709b2

Browse files
AlexiousLualexdeucher
authored andcommitted
gpu/drm/radeon: fix two memleaks in radeon_vm_init
When radeon_bo_create and radeon_vm_clear_bo fail, the vm->page_tables allocated before need to be freed. However, neither radeon_vm_init itself nor its caller have done such deallocation. Fixes: 6d2f294 ("drm/radeon: use normal BOs for the page tables v4") Signed-off-by: Zhipeng Lu <alexious@zju.edu.cn> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 28dd788 commit c2709b2

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

drivers/gpu/drm/radeon/radeon_vm.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1204,13 +1204,17 @@ int radeon_vm_init(struct radeon_device *rdev, struct radeon_vm *vm)
12041204
r = radeon_bo_create(rdev, pd_size, align, true,
12051205
RADEON_GEM_DOMAIN_VRAM, 0, NULL,
12061206
NULL, &vm->page_directory);
1207-
if (r)
1207+
if (r) {
1208+
kfree(vm->page_tables);
1209+
vm->page_tables = NULL;
12081210
return r;
1209-
1211+
}
12101212
r = radeon_vm_clear_bo(rdev, vm->page_directory);
12111213
if (r) {
12121214
radeon_bo_unref(&vm->page_directory);
12131215
vm->page_directory = NULL;
1216+
kfree(vm->page_tables);
1217+
vm->page_tables = NULL;
12141218
return r;
12151219
}
12161220

0 commit comments

Comments
 (0)