X-Git-Url: https://git.stricted.de/?a=blobdiff_plain;f=mm%2Futil.c;h=88ea1bd661c0f5164e37a8415050808fa815808f;hb=8fb47a4fbf858a164e973b8ea8ef5e83e61f2e50;hp=e7b103a6fd21c50857eda25cb5750e6d319e6498;hpb=df3256f9ab7ae2127144de5ba2abca332278a42d;p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git diff --git a/mm/util.c b/mm/util.c index e7b103a6fd21..88ea1bd661c0 100644 --- a/mm/util.c +++ b/mm/util.c @@ -6,6 +6,8 @@ #include #include +#include "internal.h" + #define CREATE_TRACE_POINTS #include @@ -215,6 +217,28 @@ char *strndup_user(const char __user *s, long n) } EXPORT_SYMBOL(strndup_user); +void __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma, + struct vm_area_struct *prev, struct rb_node *rb_parent) +{ + struct vm_area_struct *next; + + vma->vm_prev = prev; + if (prev) { + next = prev->vm_next; + prev->vm_next = vma; + } else { + mm->mmap = vma; + if (rb_parent) + next = rb_entry(rb_parent, + struct vm_area_struct, vm_rb); + else + next = NULL; + } + vma->vm_next = next; + if (next) + next->vm_prev = vma; +} + #if defined(CONFIG_MMU) && !defined(HAVE_ARCH_PICK_MMAP_LAYOUT) void arch_pick_mmap_layout(struct mm_struct *mm) {