X-Git-Url: https://git.stricted.de/?a=blobdiff_plain;f=mm%2Futil.c;h=a4c6b53d76d1bc1b51bbc98eec54b342bab0af35;hb=aba762bde4b814801a4cf95013a2dd3877e5ee01;hp=ab1424dbe2e6c9396ee66ab4446f1bc1cd557382;hpb=2206c3ab2bc45abe6b4472c37d6bdfa2fbcf9d67;p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git diff --git a/mm/util.c b/mm/util.c index ab1424dbe2e6..a4c6b53d76d1 100644 --- a/mm/util.c +++ b/mm/util.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include "internal.h" @@ -272,17 +273,14 @@ pid_t vm_is_stack(struct task_struct *task, if (in_group) { struct task_struct *t; - rcu_read_lock(); - if (!pid_alive(task)) - goto done; - t = task; - do { + rcu_read_lock(); + for_each_thread(task, t) { if (vm_is_stack_for_task(t, vma)) { ret = t->pid; goto done; } - } while_each_thread(task, t); + } done: rcu_read_unlock(); } @@ -384,6 +382,15 @@ unsigned long vm_mmap(struct file *file, unsigned long addr, } EXPORT_SYMBOL(vm_mmap); +void kvfree(const void *addr) +{ + if (is_vmalloc_addr(addr)) + vfree(addr); + else + kfree(addr); +} +EXPORT_SYMBOL(kvfree); + struct address_space *page_mapping(struct page *page) { struct address_space *mapping = page->mapping; @@ -401,6 +408,7 @@ struct address_space *page_mapping(struct page *page) mapping = NULL; return mapping; } +EXPORT_SYMBOL_GPL(page_mapping); /* Tracepoints definitions. */ EXPORT_TRACEPOINT_SYMBOL(kmalloc);