﻿id	summary	reporter	owner	description	type	status	component	version	resolution	keywords	cc	guest	host
16966	get_user_pages() interface change backported on OpenSUSE -> fixed in 5.2 and later builds after Nov 3 2017	Dmitri Chubarov		"Several changes to the linux kernel memory management interface had been backported on OpenSUSE.

These two patches are
 mm/gup: Overload get_user_pages() functions 
https://github.com/torvalds/linux/commit/cde70140fed8429acf7a14e2e2cbd3e329036653
and 
 mm/gup: Remove the macro overload API migration helpers from the get_user*() APIs
https://github.com/torvalds/linux/commit/c12d2da56d0e07d230968ee2305aaa86b93a6832

This leads to the failure of vboxdrv compilation on OpenSUSE Leap 42.3
with the following diagnostics in /var/log/vbox-install.log:

{{{
/usr/src/linux-4.4.76-1/include/linux/mm.h:1264:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘int’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1117:33: error: too many arguments to function ‘get_user_pages’
                                 papVMAs);               /* vmas */
                                 ^
In file included from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:98:0,
                 from /tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:31:
/usr/src/linux-4.4.76-1/include/linux/mm.h:1264:6: note: declared here
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
}}}

As one can see the kernel version here is 4.4.76-1, however the get_user_pages() interface looks already has the changes from Ingo Molnar that went into the 4.6.y series.

Attached is the vbox-install.log and the mm.h file provided with the distribution."	defect	closed	host support	VirtualBox 5.1.26	fixed			all	Linux
