release_process_vm: free vm_range_numa_policy
Change-Id: I8084cd60a12b557b635b8e350f70d4e4f95d4c52 Refs: #1101
This commit is contained in:
committed by
Masamichi Takagi
parent
d5de68e97b
commit
1db00ebc04
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user