aboutsummaryrefslogtreecommitdiffstats
path: root/mm/nommu.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/nommu.c')
-rw-r--r--mm/nommu.c37
1 files changed, 35 insertions, 2 deletions
diff --git a/mm/nommu.c b/mm/nommu.c
index 541bed64e348..1a19fb3b0463 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -214,6 +214,39 @@ long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
214} 214}
215EXPORT_SYMBOL(get_user_pages); 215EXPORT_SYMBOL(get_user_pages);
216 216
217long get_user_pages_locked(struct task_struct *tsk, struct mm_struct *mm,
218 unsigned long start, unsigned long nr_pages,
219 int write, int force, struct page **pages,
220 int *locked)
221{
222 return get_user_pages(tsk, mm, start, nr_pages, write, force,
223 pages, NULL);
224}
225EXPORT_SYMBOL(get_user_pages_locked);
226
227long __get_user_pages_unlocked(struct task_struct *tsk, struct mm_struct *mm,
228 unsigned long start, unsigned long nr_pages,
229 int write, int force, struct page **pages,
230 unsigned int gup_flags)
231{
232 long ret;
233 down_read(&mm->mmap_sem);
234 ret = get_user_pages(tsk, mm, start, nr_pages, write, force,
235 pages, NULL);
236 up_read(&mm->mmap_sem);
237 return ret;
238}
239EXPORT_SYMBOL(__get_user_pages_unlocked);
240
241long get_user_pages_unlocked(struct task_struct *tsk, struct mm_struct *mm,
242 unsigned long start, unsigned long nr_pages,
243 int write, int force, struct page **pages)
244{
245 return __get_user_pages_unlocked(tsk, mm, start, nr_pages, write,
246 force, pages, 0);
247}
248EXPORT_SYMBOL(get_user_pages_unlocked);
249
217/** 250/**
218 * follow_pfn - look up PFN at a user virtual address 251 * follow_pfn - look up PFN at a user virtual address
219 * @vma: memory mapping 252 * @vma: memory mapping
@@ -1895,7 +1928,7 @@ EXPORT_SYMBOL(unmap_mapping_range);
1895 */ 1928 */
1896int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) 1929int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin)
1897{ 1930{
1898 unsigned long free, allowed, reserve; 1931 long free, allowed, reserve;
1899 1932
1900 vm_acct_memory(pages); 1933 vm_acct_memory(pages);
1901 1934
@@ -1959,7 +1992,7 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin)
1959 */ 1992 */
1960 if (mm) { 1993 if (mm) {
1961 reserve = sysctl_user_reserve_kbytes >> (PAGE_SHIFT - 10); 1994 reserve = sysctl_user_reserve_kbytes >> (PAGE_SHIFT - 10);
1962 allowed -= min(mm->total_vm / 32, reserve); 1995 allowed -= min_t(long, mm->total_vm / 32, reserve);
1963 } 1996 }
1964 1997
1965 if (percpu_counter_read_positive(&vm_committed_as) < allowed) 1998 if (percpu_counter_read_positive(&vm_committed_as) < allowed)