---- NVIDIA-Linux-x86_64-390.87-no-compat32/kernel/conftest.sh~ 2018-08-22 06:47:57.000000000 +0900
-+++ NVIDIA-Linux-x86_64-390.87-no-compat32/kernel/conftest.sh 2018-12-29 09:33:30.537541114 +0900
-@@ -2725,6 +2725,32 @@
- return
- fi
-
-+ # Conftest #3: Check if get_user_pages has gup_flags instead of write and force parameters.
-+ # Return if available.
-+ # Fall through to default case if absent.
-+
-+ echo "$CONFTEST_PREAMBLE
-+ #include <linux/mm.h>
-+ long get_user_pages(struct task_struct *tsk,
-+ struct mm_struct *mm,
-+ unsigned long start,
-+ unsigned long nr_pages,
-+ unsigned int gup_flags,
-+ struct page **pages,
-+ struct vm_area_struct **vmas) {
-+ return 0;
-+ }" > conftest$$.c
-+
-+ $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
-+ rm -f conftest$$.c
-+
-+ if [ -f conftest$$.o ]; then
-+ echo "#undef NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions"
-+ echo "#define NV_GET_USER_PAGES_HAS_TASK_STRUCT" | append_conftest "functions"
-+ rm -f conftest$$.o
-+ return
-+ fi
-+
- echo "#define NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions"
- echo "#define NV_GET_USER_PAGES_HAS_TASK_STRUCT" | append_conftest "functions"
-
---- NVIDIA-Linux-x86_64-390.87-no-compat32/kernel/common/inc/nv-mm.h~ 2018-08-22 09:55:23.000000000 +0900
-+++ NVIDIA-Linux-x86_64-390.87-no-compat32/kernel/common/inc/nv-mm.h 2018-12-29 09:30:55.797962776 +0900
-@@ -40,8 +40,31 @@
- */
-
- #if defined(NV_GET_USER_PAGES_HAS_TASK_STRUCT)
-+ #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS)
- #define NV_GET_USER_PAGES(start, nr_pages, write, force, pages, vmas) \
- get_user_pages(current, current->mm, start, nr_pages, write, force, pages, vmas)
-+ #else
-+ #include <asm/current.h>
-+ #include <linux/mm.h>
-+ #include <linux/sched.h>
-+
-+ static inline long NV_GET_USER_PAGES(unsigned long start,
-+ unsigned long nr_pages,
-+ int write,
-+ int force,
-+ struct page **pages,
-+ struct vm_area_struct **vmas)
-+ {
-+ unsigned int flags = 0;
-+
-+ if (write)
-+ flags |= FOLL_WRITE;
-+ if (force)
-+ flags |= FOLL_FORCE;
-+
-+ return get_user_pages(current, current->mm, start, nr_pages, flags, pages, vmas);
-+ }
-+ #endif
- #else
- #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS)
- #define NV_GET_USER_PAGES get_user_pages
-@@ -147,7 +147,32 @@
- }
- #endif
- #else
-- #define NV_GET_USER_PAGES_REMOTE get_user_pages
-+ #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS)
-+ #define NV_GET_USER_PAGES_REMOTE get_user_pages
-+ #else
-+ #include <asm/current.h>
-+ #include <linux/mm.h>
-+ #include <linux/sched.h>
-+
-+ static inline long NV_GET_USER_PAGES_REMOTE(struct task_struct *tsk,
-+ struct mm_struct *mm,
-+ unsigned long start,
-+ unsigned long nr_pages,
-+ int write,
-+ int force,
-+ struct page **pages,
-+ struct vm_area_struct **vmas)
-+ {
-+ unsigned int flags = 0;
-+
-+ if (write)
-+ flags |= FOLL_WRITE;
-+ if (force)
-+ flags |= FOLL_FORCE;
-+
-+ return get_user_pages(tsk, mm, start, nr_pages, flags, pages, vmas);
-+ }
-+ #endif
- #endif
-
-