This appears to have either gone too far or not far enough, since the current xenial of:
4.4.0-143-generic #169-Ubuntu SMP Thu Feb 7 07:56:38 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
now fails to build the virtualbox client modules with:
---------------
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c: In function ‘rtR0MemObjNativeLockUser’:
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1123:33: warning: passing argument 6 of ‘get_user_pages’ makes pointer from integer without a cast [-Wint-conversion] fWrite, /* force write access. */ ^
In file included from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:101:0, from /tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:31:
include/linux/mm.h:1222:6: note: expected ‘struct page **’ but argument is of type ‘int’
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1125:33: warning: passing argument 7 of ‘get_user_pages’ from incompatible pointer type [-Wincompatible-pointer-types] &pMemLnx->apPages[0], /* Page array. */ ^
In file included from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:101:0, from /tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:31:
include/linux/mm.h:1222:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘struct page **’
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1113:18: error: too many arguments to function ‘get_user_pages’
rc = get_user_pages(pTask, /* Task for fault accounting. */
^
In file included from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:101:0, from /tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:31:
include/linux/mm.h:1222:6: note: declared here
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
scripts/Makefile.build:285: recipe for target '/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.o' failed
---------------
against the current virtualbox release (6.04). The -142 kernels didn't have this problem.
Sidenote: my understanding is that the dkms modules haven't been required by virtualbox in several years now. The 5.1.xx series is also probably obsolete.
This appears to have either gone too far or not far enough, since the current xenial of:
4.4.0-143-generic #169-Ubuntu SMP Thu Feb 7 07:56:38 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
now fails to build the virtualbox client modules with: 0/r0drv/ linux/memobj- r0drv-linux. c: In function ‘rtR0MemObjNati veLockUser’ : 0/r0drv/ linux/memobj- r0drv-linux. c:1123: 33: warning: passing argument 6 of ‘get_user_pages’ makes pointer from integer without a cast [-Wint-conversion]
fWrite, /* force write access. */
^ 0/r0drv/ linux/the- linux-kernel. h:101:0,
from /tmp/vbox. 0/r0drv/ linux/memobj- r0drv-linux. c:31: linux/mm. h:1222: 6: note: expected ‘struct page **’ but argument is of type ‘int’ pages(struct task_struct *tsk, struct mm_struct *mm, 0/r0drv/ linux/memobj- r0drv-linux. c:1125: 33: warning: passing argument 7 of ‘get_user_pages’ from incompatible pointer type [-Wincompatible -pointer- types]
&pMemLnx- >apPages[ 0], /* Page array. */
^ 0/r0drv/ linux/the- linux-kernel. h:101:0,
from /tmp/vbox. 0/r0drv/ linux/memobj- r0drv-linux. c:31: linux/mm. h:1222: 6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘struct page **’ pages(struct task_struct *tsk, struct mm_struct *mm, 0/r0drv/ linux/memobj- r0drv-linux. c:1113: 18: error: too many arguments to function ‘get_user_pages’ pages(pTask, /* Task for fault accounting. */ 0/r0drv/ linux/the- linux-kernel. h:101:0,
from /tmp/vbox. 0/r0drv/ linux/memobj- r0drv-linux. c:31: linux/mm. h:1222: 6: note: declared here pages(struct task_struct *tsk, struct mm_struct *mm, Makefile. build:285: recipe for target '/tmp/vbox. 0/r0drv/ linux/memobj- r0drv-linux. o' failed
---------------
/tmp/vbox.
/tmp/vbox.
In file included from /tmp/vbox.
include/
long get_user_
^
/tmp/vbox.
In file included from /tmp/vbox.
include/
long get_user_
^
/tmp/vbox.
rc = get_user_
^
In file included from /tmp/vbox.
include/
long get_user_
^
scripts/
---------------
against the current virtualbox release (6.04). The -142 kernels didn't have this problem.
Sidenote: my understanding is that the dkms modules haven't been required by virtualbox in several years now. The 5.1.xx series is also probably obsolete.