X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=mm%2Futil.c;h=cb00b748ce47886446975d96466c2154f4d52fa3;hb=2d70b68d42b5196a48ccb639e3797f097ef5bea3;hp=6ef9e9943f626de713f9b7519ec72a5d009841bc;hpb=93bc4e89c260d91576840c4881d1066d84ccd422;p=linux-2.6 diff --git a/mm/util.c b/mm/util.c index 6ef9e9943f..cb00b748ce 100644 --- a/mm/util.c +++ b/mm/util.c @@ -1,7 +1,9 @@ +#include #include #include #include #include +#include #include /** @@ -160,3 +162,27 @@ char *strndup_user(const char __user *s, long n) return p; } EXPORT_SYMBOL(strndup_user); + +#ifndef HAVE_ARCH_PICK_MMAP_LAYOUT +void arch_pick_mmap_layout(struct mm_struct *mm) +{ + mm->mmap_base = TASK_UNMAPPED_BASE; + mm->get_unmapped_area = arch_get_unmapped_area; + mm->unmap_area = arch_unmap_area; +} +#endif + +int __attribute__((weak)) get_user_pages_fast(unsigned long start, + int nr_pages, int write, struct page **pages) +{ + struct mm_struct *mm = current->mm; + int ret; + + down_read(&mm->mmap_sem); + ret = get_user_pages(current, mm, start, nr_pages, + write, 0, pages, NULL); + up_read(&mm->mmap_sem); + + return ret; +} +EXPORT_SYMBOL_GPL(get_user_pages_fast);