release_process_vm: free vm_range_numa_policy

Change-Id: I8084cd60a12b557b635b8e350f70d4e4f95d4c52
Refs: #1101
This commit is contained in:
Tomoki Shirasawa
2019-12-05 08:54:15 +09:00
committed by Masamichi Takagi
parent d5de68e97b
commit 1db00ebc04
11 changed files with 248 additions and 0 deletions

View File

@@ -2750,6 +2750,8 @@ void
release_process_vm(struct process_vm *vm)
{
struct process *proc = vm->proc;
struct vm_range_numa_policy *policy;
struct rb_node *node;
if (!ihk_atomic_dec_and_test(&vm->refcount)) {
return;
@@ -2777,6 +2779,15 @@ release_process_vm(struct process_vm *vm)
detach_address_space(vm->address_space, vm->proc->pid);
proc->vm = NULL;
release_process(proc);
while ((node = rb_first(&vm->vm_range_numa_policy_tree))) {
policy = rb_entry(node, struct vm_range_numa_policy,
policy_rb_node);
rb_erase(&policy->policy_rb_node,
&vm->vm_range_numa_policy_tree);
kfree(policy);
}
kfree(vm);
}