Comment 8 for bug 1573508

Revision history for this message
Mohammad (mohamad-kav) wrote : Re: nvidia-361 361.42-0ubuntu2: nvidia-361 kernel module failed to build [error: too many arguments to function ‘get_user_pages’]

Sorry but the patch returned other errors:

/var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c: In function ‘os_lock_user_pages’:
/usr/src/linux-4.6.2-1/arch/x86/include/asm/current.h:17:17: warning: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [-Wint-conversion]
 #define current get_current()
                 ^
/var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:119:26: note: in expansion of macro ‘current’
     ret = get_user_pages(current, mm, (unsigned long)address,
                          ^
In file included from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-pgprot.h:17:0,
                 from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-linux.h:17,
                 from /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:15:
/usr/src/linux-4.6.2-1/include/linux/mm.h:1266:6: note: expected ‘long unsigned int’ but argument is of type ‘struct task_struct *’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:119:35: warning: passing argument 2 of ‘get_user_pages’ makes integer from pointer without a cast [-Wint-conversion]
     ret = get_user_pages(current, mm, (unsigned long)address,
                                   ^
In file included from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-pgprot.h:17:0,
                 from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-linux.h:17,
                 from /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:15:
/usr/src/linux-4.6.2-1/include/linux/mm.h:1266:6: note: expected ‘long unsigned int’ but argument is of type ‘struct mm_struct *’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:120:25: warning: passing argument 5 of ‘get_user_pages’ makes pointer from integer without a cast [-Wint-conversion]
             page_count, write, force, user_pages, NULL);
                         ^
In file included from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-pgprot.h:17:0,
                 from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-linux.h:17,
                 from /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:15:
/usr/src/linux-4.6.2-1/include/linux/mm.h:1266:6: note: expected ‘struct page **’ but argument is of type ‘NvBool {aka unsigned char}’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:120:32: warning: passing argument 6 of ‘get_user_pages’ makes pointer from integer without a cast [-Wint-conversion]
             page_count, write, force, user_pages, NULL);
                                ^
In file included from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-pgprot.h:17:0,
                 from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-linux.h:17,
                 from /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:15:
/usr/src/linux-4.6.2-1/include/linux/mm.h:1266:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘NvBool {aka unsigned char}’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:119:11: error: too many arguments to function ‘get_user_pages’
     ret = get_user_pages(current, mm, (unsigned long)address,
           ^
In file included from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-pgprot.h:17:0,
                 from /var/lib/dkms/nvidia/361.42/build/common/inc/nv-linux.h:17,
                 from /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:15:
/usr/src/linux-4.6.2-1/include/linux/mm.h:1266:6: note: declared here
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.c:132:13: error: implicit declaration of function ‘page_cache_release’ [-Werror=implicit-function-declaration]
             page_cache_release(user_pages[i]);
             ^
cc1: some warnings being treated as errors
make[3]: *** [/usr/src/linux-4.6.2-1/scripts/Makefile.build:294: /var/lib/dkms/nvidia/361.42/build/nvidia/os-mlock.o] Error 1
make[2]: *** [/usr/src/linux-4.6.2-1/Makefile:1455: _module_/var/lib/dkms/nvidia/361.42/build] Error 2
make[2]: Leaving directory '/usr/src/linux-4.6.2-1-obj/x86_64/default'
make[1]: *** [Makefile:146: sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-4.6.2-1'
make: *** [Makefile:81: modules] Error 2