Kernel – 5.3-rc1 is Out. NVIDIA OK, VMware vmmon Fails, and a Fix.
Tested the newly released Kernel 5.3-rc1 (brief details here: http://lkml.iu.edu/hypermail/linux/kernel/1907.2/04769.html )
The latest NVIDIA (430.34) compiles and runs OK, and (patched) VMware 15.1.0 vmnet compiles OK, but vmmon fails:
.........
CC [M] /tmp/modconfig-Kk5UU0/vmmon-only/common/cpuid.o
/tmp/modconfig-Kk5UU0/vmmon-only/linux/hostif.c: In function ‘HostIF_SetFastClockRate’:
/tmp/modconfig-Kk5UU0/vmmon-only/linux/hostif.c:3406:10: error: too many arguments to function ‘force_sig’
3406 | force_sig(SIGKILL, linuxState.fastClockThread);
| ^~~~~~~~~
In file included from ./include/linux/taskstats_kern.h:12,
from /tmp/modconfig-Kk5UU0/vmmon-only/linux/hostif.c:56:
./include/linux/sched/signal.h:341:13: note: declared here
341 | extern void force_sig(int);
| ^~~~~~~~~
make[2]: *** [scripts/Makefile.build:274: /tmp/modconfig-Kk5UU0/vmmon-only/linux/hostif.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:1617: _module_/tmp/modconfig-Kk5UU0/vmmon-only] Error 2
make[1]: Leaving directory '/usr/src/linux-5.3-rc1'
make: *** [Makefile:110: vmmon.ko] Error 2
.................
This is caused by the following change (from the summary):
Eric Biederman (1):
force_sig() argument change
Update:
A ‘proper’ fix can be found at https://github.com/mkubecek/vmware-host-modules/tree/tmp/workstation-15.1.0-k5.3, and the details for this are at: https://github.com/mkubecek/vmware-host-modules/commit/98008ff6adec118962df8ac26f814b55c3861efb (note that these links – July 21 – may change).
With this patch, VMware appears to work OK again (tested with Win7 client on Fedora30 host) Thanks again to Michal Kubeček for this..
Robert Gadsdon. July 21, 2019.
That doesn’t seem right, force_sig() in v5.3-rc1 takes signal number as an argument. I believe the right call would be send_sig(SIGKILL, linuxState.fastClockThread, 1) – see e.g. kernel commit 1dfd1711de29. However, getting to this call should be rather rare so you might never find out if you pass something wrong. 🙂
Yes.. I had just found your workstation-15.1.0-k5.3 info, and will update the post accordingly.
Thanks.
RG.
Problem with VirtualBox also.
=== Building ‘vboxdrv’ module ===
make[1]: Entering directory ‘/usr/share/virtualbox/src/vboxhost/vboxdrv’
make V= CONFIG_MODULE_SIG= -C /lib/modules/5.3.0-rc1-smp/build M=/usr/share/virtualbox/src/vboxhost/vboxdrv SRCROOT=/usr/share/virtualbox/src/vboxhost/vboxdrv -j8 modules
make[2]: Entering directory ‘/usr/share/virtualbox/src/vboxhost/vboxdrv’
make[2]: warning: -jN forced in submake: disabling jobserver mode.
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/linux/SUPDrv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrvGip.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrvSem.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrvTracer.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/SUPLibAll.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/alloc-r0drv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/initterm-r0drv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/memobj-r0drv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/mpnotification-r0drv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/powernotification-r0drv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/assert-r0drv-linux.o
/usr/share/virtualbox/src/vboxhost/vboxdrv/linux/SUPDrv-linux.o: warning: objtool: VBoxDrvLinuxIOCtl_6_0_10()+0x9d: call to VBoxHost_RTR0MemUserCopyFrom() with UACCESS enabled
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/alloc-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/initterm-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/memobj-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.o
/usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrvTracer.o: warning: objtool: .text+0x7: indirect jump found in RETPOLINE build
/usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrvTracer.o: warning: objtool: supdrvTracerProbeFireStub() is missing an ELF size annotation
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mpnotification-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/process-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/rtStrFormatKernelAddress-r0drv-linux.o
/usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.c: In function âVBoxHost_RTMpOnAllâ:
/usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.c:287:18: error: void value not ignored as it ought to be
287 | int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
| ^~~~~~~~~~~~~~~~~
/usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.c: In function âVBoxHost_RTMpOnOthersâ:
/usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.c:341:8: error: void value not ignored as it ought to be
341 | rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
| ^
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/semevent-r0drv-linux.o
make[3]: *** [scripts/Makefile.build:274: /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.o] Error 1
make[3]: *** Waiting for unfinished jobs….
/usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.o: warning: objtool: rtR0MemKernelCopyLnxWorker()+0xc: redundant CLD
make[2]: *** [Makefile:1617: _module_/usr/share/virtualbox/src/vboxhost/vboxdrv] Error 2
make[2]: Leaving directory ‘/usr/src/linux-5.3.0-rc1’
make[1]: *** [/usr/share/virtualbox/src/vboxhost/vboxdrv/Makefile-footer.gmk:111: vboxdrv] Error 2
make[1]: Leaving directory ‘/usr/share/virtualbox/src/vboxhost/vboxdrv’
make: *** [Makefile:58: vboxdrv] Error 2
sabre:/usr/src/vboxhost-6.0.10 #
VirtualBox module build fails
=== Building ‘vboxdrv’ module ===
make[1]: Entering directory ‘/usr/share/virtualbox/src/vboxhost/vboxdrv’
make V= CONFIG_MODULE_SIG= -C /lib/modules/5.3.0-rc1-smp/build M=/usr/share/virtualbox/src/vboxhost/vboxdrv SRCROOT=/usr/share/virtualbox/src/vboxhost/vboxdrv -j8 modules
make[2]: Entering directory ‘/usr/share/virtualbox/src/vboxhost/vboxdrv’
make[2]: warning: -jN forced in submake: disabling jobserver mode.
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/linux/SUPDrv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrvGip.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrvSem.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrvTracer.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/SUPLibAll.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/alloc-r0drv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/initterm-r0drv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/memobj-r0drv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/mpnotification-r0drv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/powernotification-r0drv.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/assert-r0drv-linux.o
/usr/share/virtualbox/src/vboxhost/vboxdrv/linux/SUPDrv-linux.o: warning: objtool: VBoxDrvLinuxIOCtl_6_0_10()+0x9d: call to VBoxHost_RTR0MemUserCopyFrom() with UACCESS enabled
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/alloc-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/initterm-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/memobj-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.o
/usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrvTracer.o: warning: objtool: .text+0x7: indirect jump found in RETPOLINE build
/usr/share/virtualbox/src/vboxhost/vboxdrv/SUPDrvTracer.o: warning: objtool: supdrvTracerProbeFireStub() is missing an ELF size annotation
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mpnotification-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/process-r0drv-linux.o
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/rtStrFormatKernelAddress-r0drv-linux.o
/usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.c: In function âVBoxHost_RTMpOnAllâ:
/usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.c:287:18: error: void value not ignored as it ought to be
287 | int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
| ^~~~~~~~~~~~~~~~~
/usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.c: In function âVBoxHost_RTMpOnOthersâ:
/usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.c:341:8: error: void value not ignored as it ought to be
341 | rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
| ^
CC [M] /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/semevent-r0drv-linux.o
make[3]: *** [scripts/Makefile.build:274: /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/mp-r0drv-linux.o] Error 1
make[3]: *** Waiting for unfinished jobs….
/usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.o: warning: objtool: rtR0MemKernelCopyLnxWorker()+0xc: redundant CLD
make[2]: *** [Makefile:1617: _module_/usr/share/virtualbox/src/vboxhost/vboxdrv] Error 2
make[2]: Leaving directory ‘/usr/src/linux-5.3.0-rc1’
make[1]: *** [/usr/share/virtualbox/src/vboxhost/vboxdrv/Makefile-footer.gmk:111: vboxdrv] Error 2
make[1]: Leaving directory ‘/usr/share/virtualbox/src/vboxhost/vboxdrv’
make: *** [Makefile:58: vboxdrv] Error 2
sabre:/usr/src/vboxhost-6.0.10 #
Apologies for the duplicate. The original only after I added the same data again.
smp_call_function() return type was changed to void in 5.3-rc1 (commit caa759323c73) as it always returned 0 since 2.6.29-rc1 anyway. So simply drop the assignment and handling of non-zero rc (if there is some).
Thanks, I’ll have a look to see how that can be changed.