﻿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
