Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 912985dc authored by Rusty Russell's avatar Rusty Russell
Browse files

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: default avatarNick Piggin <npiggin@suse.de>
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 40c42076
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -42,9 +42,6 @@ config GENERIC_HARDIRQS
	bool
	default y

config HAVE_GET_USER_PAGES_FAST
	def_bool PPC64

config HAVE_SETUP_PER_CPU_AREA
	def_bool PPC64

+0 −1
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ config X86
	select HAVE_IDE
	select HAVE_OPROFILE
	select HAVE_IOREMAP_PROT
	select HAVE_GET_USER_PAGES_FAST
	select HAVE_KPROBES
	select ARCH_WANT_OPTIONAL_GPIOLIB
	select HAVE_KRETPROBES
+1 −2
Original line number Diff line number Diff line
obj-y	:=  init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \
	    pat.o pgtable.o
	    pat.o pgtable.o gup.o

obj-$(CONFIG_HAVE_GET_USER_PAGES_FAST) += gup.o
obj-$(CONFIG_X86_32)		+= pgtable_32.o

obj-$(CONFIG_HUGETLB_PAGE)	+= hugetlbpage.o
+0 −20
Original line number Diff line number Diff line
@@ -834,7 +834,6 @@ extern int mprotect_fixup(struct vm_area_struct *vma,
			  struct vm_area_struct **pprev, unsigned long start,
			  unsigned long end, unsigned long newflags);

#ifdef CONFIG_HAVE_GET_USER_PAGES_FAST
/*
 * get_user_pages_fast provides equivalent functionality to get_user_pages,
 * 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,
int get_user_pages_fast(unsigned long start, int nr_pages, int write,
			struct page **pages);

#else
/*
 * Should probably be moved to asm-generic, and architectures can include it if
 * they don't implement their own get_user_pages_fast.
 */
#define get_user_pages_fast(start, nr_pages, write, 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);					\
								\
	ret;							\
})
#endif

/*
 * A callback you can register to apply pressure to ageable caches.
 *
+0 −3
Original line number Diff line number Diff line
@@ -77,9 +77,6 @@ config FLAT_NODE_MEM_MAP
	def_bool y
	depends on !SPARSEMEM

config HAVE_GET_USER_PAGES_FAST
	bool

#
# Both the NUMA code and DISCONTIGMEM use arrays of pg_data_t's
# to represent different areas of memory.  This variable allows
Loading