projects
/
GitHub
/
mt8127
/
android_kernel_alcatel_ttab.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'v3.10.72' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git]
/
mm
/
util.c
diff --git
a/mm/util.c
b/mm/util.c
index ab1424dbe2e6c9396ee66ab4446f1bc1cd557382..a4c6b53d76d1bc1b51bbc98eec54b342bab0af35 100644
(file)
--- a/
mm/util.c
+++ b/
mm/util.c
@@
-7,6
+7,7
@@
#include <linux/security.h>
#include <linux/swap.h>
#include <linux/swapops.h>
#include <linux/security.h>
#include <linux/swap.h>
#include <linux/swapops.h>
+#include <linux/vmalloc.h>
#include <asm/uaccess.h>
#include "internal.h"
#include <asm/uaccess.h>
#include "internal.h"
@@
-272,17
+273,14
@@
pid_t vm_is_stack(struct task_struct *task,
if (in_group) {
struct task_struct *t;
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;
}
if (vm_is_stack_for_task(t, vma)) {
ret = t->pid;
goto done;
}
- }
while_each_thread(task, t);
+ }
done:
rcu_read_unlock();
}
done:
rcu_read_unlock();
}
@@
-384,6
+382,15
@@
unsigned long vm_mmap(struct file *file, unsigned long addr,
}
EXPORT_SYMBOL(vm_mmap);
}
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;
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;
}
mapping = NULL;
return mapping;
}
+EXPORT_SYMBOL_GPL(page_mapping);
/* Tracepoints definitions. */
EXPORT_TRACEPOINT_SYMBOL(kmalloc);
/* Tracepoints definitions. */
EXPORT_TRACEPOINT_SYMBOL(kmalloc);