blob: b8f41fb269b27cd44d29fbf084bb6829e65061bd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <linux/slab.h>
#include <linux/list.h>
int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
{
INIT_LIST_HEAD(&mm->context.direct_list);
return 0;
}
/* just free all elements of list identifying directly mapped areas */
void destroy_context(struct mm_struct *mm)
{
direct_mmap_node_t * node;
struct list_head * curr;
struct list_head * direct_list = &mm->context.direct_list;
curr = direct_list->next;
while(curr != direct_list){
node = list_entry(curr, direct_mmap_node_t, list);
curr = curr->next;
list_del(&node->list);
kfree(node);
}
}
|