diff options
| author | Rusty Russell <rusty@rustcorp.com.au> | 2008-08-12 18:52:52 -0400 |
|---|---|---|
| committer | Rusty Russell <rusty@rustcorp.com.au> | 2008-08-12 03:52:53 -0400 |
| commit | 912985dce45ef18fcdd9f5439fef054e0e22302a (patch) | |
| tree | 394b3be51134bddef200f86dde48aa3e3c7ae94c /include | |
| parent | 40c42076ebd362dc69210cccea101ac80b6d4bd4 (diff) | |
mm: Make generic weak get_user_pages_fast and EXPORT_GPL it
Out of line get_user_pages_fast fallback implementation, make it a weak
symbol, get rid of CONFIG_HAVE_GET_USER_PAGES_FAST.
Export the symbol to modules so lguest can use it.
Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/mm.h | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index 335288bff1b7..fa651609b65d 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -834,7 +834,6 @@ extern int mprotect_fixup(struct vm_area_struct *vma, | |||
| 834 | struct vm_area_struct **pprev, unsigned long start, | 834 | struct vm_area_struct **pprev, unsigned long start, |
| 835 | unsigned long end, unsigned long newflags); | 835 | unsigned long end, unsigned long newflags); |
| 836 | 836 | ||
| 837 | #ifdef CONFIG_HAVE_GET_USER_PAGES_FAST | ||
| 838 | /* | 837 | /* |
| 839 | * get_user_pages_fast provides equivalent functionality to get_user_pages, | 838 | * get_user_pages_fast provides equivalent functionality to get_user_pages, |
| 840 | * operating on current and current->mm (force=0 and doesn't return any vmas). | 839 | * operating on current and current->mm (force=0 and doesn't return any vmas). |
| @@ -848,25 +847,6 @@ extern int mprotect_fixup(struct vm_area_struct *vma, | |||
| 848 | int get_user_pages_fast(unsigned long start, int nr_pages, int write, | 847 | int get_user_pages_fast(unsigned long start, int nr_pages, int write, |
| 849 | struct page **pages); | 848 | struct page **pages); |
| 850 | 849 | ||
| 851 | #else | ||
| 852 | /* | ||
| 853 | * Should probably be moved to asm-generic, and architectures can include it if | ||
| 854 | * they don't implement their own get_user_pages_fast. | ||
| 855 | */ | ||
| 856 | #define get_user_pages_fast(start, nr_pages, write, pages) \ | ||
| 857 | ({ \ | ||
| 858 | struct mm_struct *mm = current->mm; \ | ||
| 859 | int ret; \ | ||
| 860 | \ | ||
| 861 | down_read(&mm->mmap_sem); \ | ||
| 862 | ret = get_user_pages(current, mm, start, nr_pages, \ | ||
| 863 | write, 0, pages, NULL); \ | ||
| 864 | up_read(&mm->mmap_sem); \ | ||
| 865 | \ | ||
| 866 | ret; \ | ||
| 867 | }) | ||
| 868 | #endif | ||
| 869 | |||
| 870 | /* | 850 | /* |
| 871 | * A callback you can register to apply pressure to ageable caches. | 851 | * A callback you can register to apply pressure to ageable caches. |
| 872 | * | 852 | * |
