Kernel – 5.9-rc1 Released – VMware Still Broken.. NVIDIA Compile Fails..
Kernel 5.9-rc1 is out, and brief details are here: http://lkml.iu.edu/hypermail/linux/kernel/2008.2/00223.html
As expected, VMware is still broken, and fails/reboots when a VM start is attempted.
Vmnet, with the latest patch, compiles OK, and there is a patch for vmmon and Kernel 5.9 available, for the Workstation 16 early-release, here:
https://github.com/mkubecek/vmware-host-modules/tree/tmp/workstation-16
With regard to NVIDIA, the interim patch for 5.9-rc1(pre) from a week ago no longer works:
.....................
CONFTEST: drm_alpha_blending_available
CC [M] /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.o
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-linux.h:21,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.c:13:
/home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-mm.h: In function ‘NV_GET_USER_PAGES_REMOTE’:
/home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-mm.h:149:45: error: passing argument 1 of ‘get_user_pages_remote’ from incompatible pointer type [-Werror=incompatible-pointer-types]
149 | return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
| ^~~
| |
| struct task_struct *
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-pgprot.h:17,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-linux.h:20,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.c:13:
./include/linux/mm.h:1707:46: note: expected ‘struct mm_struct *’ but argument is of type ‘struct task_struct *’
1707 | long get_user_pages_remote(struct mm_struct *mm,
| ~~~~~~~~~~~~~~~~~~^~
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-linux.h:21,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.c:13:
/home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-mm.h:149:50: warning: passing argument 2 of ‘get_user_pages_remote’ makes integer from pointer without a cast [-Wint-conversion]
149 | return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
| ^~
| |
| struct mm_struct *
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-pgprot.h:17,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-linux.h:20,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.c:13:
./include/linux/mm.h:1708:22: note: expected ‘long unsigned int’ but argument is of type ‘struct mm_struct *’
1708 | unsigned long start, unsigned long nr_pages,
| ~~~~~~~~~~~~~~^~~~~
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-linux.h:21,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.c:13:
/home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-mm.h:149:71: warning: passing argument 5 of ‘get_user_pages_remote’ makes pointer from integer without a cast [-Wint-conversion]
149 | return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
| ^~~~~
| |
| unsigned int
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-pgprot.h:17,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-linux.h:20,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.c:13:
./include/linux/mm.h:1709:46: note: expected ‘struct page **’ but argument is of type ‘unsigned int’
1709 | unsigned int gup_flags, struct page **pages,
| ~~~~~~~~~~~~~~^~~~~
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-linux.h:21,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.c:13:
/home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-mm.h:150:45: error: passing argument 6 of ‘get_user_pages_remote’ from incompatible pointer type [-Werror=incompatible-pointer-types]
150 | pages, vmas);
| ^~~~~
| |
| struct page **
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-pgprot.h:17,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-linux.h:20,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.c:13:
./include/linux/mm.h:1710:32: note: expected ‘struct vm_area_struct **’ but argument is of type ‘struct page **’
1710 | struct vm_area_struct **vmas, int *locked);
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-linux.h:21,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.c:13:
/home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-mm.h:150:52: error: passing argument 7 of ‘get_user_pages_remote’ from incompatible pointer type [-Werror=incompatible-pointer-types]
150 | pages, vmas);
| ^~~~
| |
| struct vm_area_struct **
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-pgprot.h:17,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/common/inc/nv-linux.h:20,
from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.c:13:
./include/linux/mm.h:1710:43: note: expected ‘int *’ but argument is of type ‘struct vm_area_struct **’
1710 | struct vm_area_struct **vmas, int *locked);
| ~~~~~^~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:283: /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia/nv-frontend.o] Error 1
make[1]: *** [Makefile:1789: /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel] Error 2
make[1]: Leaving directory '/usr/src/linux-5.9-rc1'
make: *** [Makefile:81: modules] Error 2
The VMware issues can only be fixed by VMware themselves, and it would seem that the fix may possibly only be available for Workstation 16, when that is released..?
Robert Gadsdon. August 16th 2020
Isaak is straight back with an updated patch at the same link. I’ve installed it on the k5.9-rc1.
Ive just successfully tried nvidia-450.66 with kernel-59-rc. I had to patch it with the 450.57 patch and the licence patch. I also had to comment out the final diff section ‘nvivia.Kbuild’ to get it to work.