Kernel – 4.11-rc1 Released – Breaks (Patched) VMware and NVIDIA..
Kernel 4.11-rc1 has been released, and brief details are here: http://lkml.iu.edu/hypermail/linux/kernel/1703.0/03031.html
Updated the test system, and 4.10-patched versions of VMware 12.5.2 and NVIDIA 378.13 fail to compile..
VMware (12.5.2 – patched for 4.9/4.10):
............. /tmp/modconfig-rRcJiJ/vmmon-only/linux/hostif.c: In function ‘HostIFFastClockThread’: /tmp/modconfig-rRcJiJ/vmmon-only/linux/hostif.c:3267:4: error: implicit declaration of function ‘allow_signal’ [-Werror=implicit-function-declaration] allow_signal(SIGKILL); ^~~~~~~~~~~~ /tmp/modconfig-rRcJiJ/vmmon-only/linux/hostif.c: In function ‘HostIF_SetFastClockRate’: /tmp/modconfig-rRcJiJ/vmmon-only/linux/hostif.c:3421:10: error: implicit declaration of function ‘force_sig’ [-Werror=implicit-function-declaration] force_sig(SIGKILL, linuxState.fastClockThread); ^~~~~~~~~ cc1: some warnings being treated as errors scripts/Makefile.build:294: recipe for target '/tmp/modconfig-rRcJiJ/vmmon-only/linux/hostif.o' failed make[2]: *** [/tmp/modconfig-rRcJiJ/vmmon-only/linux/hostif.o] Error 1 make[2]: *** Waiting for unfinished jobs.... /tmp/modconfig-rRcJiJ/vmmon-only/linux/driver.c:121:19: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] .fault = LinuxDriverFault ^~~~~~~~~~~~~~~~ /tmp/modconfig-rRcJiJ/vmmon-only/linux/driver.c:121:19: note: (near initialization for ‘vmuser_mops.fault’) /tmp/modconfig-rRcJiJ/vmmon-only/linux/driver.c:1283:1: warning: always_inline function might not be inlinable [-Wattributes] LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min ^~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors scripts/Makefile.build:294: recipe for target '/tmp/modconfig-rRcJiJ/vmmon-only/linux/driver.o' failed make[2]: *** [/tmp/modconfig-rRcJiJ/vmmon-only/linux/driver.o] Error 1 Makefile:1492: recipe for target '_module_/tmp/modconfig-rRcJiJ/vmmon-only' failed make[1]: *** [_module_/tmp/modconfig-rRcJiJ/vmmon-only] Error 2 make[1]: Leaving directory '/usr/src/linux-4.11-rc1' Makefile:120: recipe for target 'vmmon.ko' failed make: *** [vmmon.ko] Error 2 make: Leaving directory '/tmp/modconfig-rRcJiJ/vmmon-only' .................................... CC [M] /tmp/modconfig-rRcJiJ/vmnet-only/bridge.o /tmp/modconfig-rRcJiJ/vmnet-only/userif.c: In function ‘VNetUserIfRead’: /tmp/modconfig-rRcJiJ/vmnet-only/userif.c:748:11: error: implicit declaration of function ‘signal_pending’ [-Werror=implicit-function-declaration] if (signal_pending(current)) { ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors scripts/Makefile.build:294: recipe for target '/tmp/modconfig-rRcJiJ/vmnet-only/userif.o' failed make[2]: *** [/tmp/modconfig-rRcJiJ/vmnet-only/userif.o] Error 1 make[2]: *** Waiting for unfinished jobs....
NVIDIA (378.13 with 4.10 patch):
............................... /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.13-custom/kernel/nvidia-uvm/uvm_linux.h: In function ‘__fatal_signal_pending’: /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.13-custom/kernel/nvidia-uvm/uvm_linux.h:212:25: error: implicit declaration of function ‘sigismember’ [-Werror=implicit-function-declaration] return unlikely(sigismember(&p->pending.signal, SIGKILL)); ^ /usr/src/linux-4.11-rc1/include/linux/compiler.h:179:42: note: in definition of macro ‘unlikely’ # define unlikely(x) __builtin_expect(!!(x), 0) ^ In file included from /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.13-custom/kernel/nvidia-uvm/uvm_utils.c:25:0: /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.13-custom/kernel/nvidia-uvm/uvm_linux.h: In function ‘fatal_signal_pending’: /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.13-custom/kernel/nvidia-uvm/uvm_linux.h:217:16: error: implicit declaration of function ‘signal_pending’ [-Werror=implicit-function-declaration] return signal_pending(p) && __fatal_signal_pending(p); ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors /usr/src/linux-4.11-rc1/scripts/Makefile.build:294: recipe for target '/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.13-custom/kernel/nvidia-uvm/uvm_utils.o' failed make[3]: *** [/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.13-custom/kernel/nvidia-uvm/uvm_utils.o] Error 1 /usr/src/linux-4.11-rc1/Makefile:1492: recipe for target '_module_/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.13-custom/kernel' failed make[2]: *** [_module_/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.13-custom/kernel] Error 2 make[2]: Leaving directory '/usr/src/linux-4.11-rc1' Makefile:152: recipe for target 'sub-make' failed make[1]: *** [sub-make] Error 2 make[1]: Leaving directory '/usr/src/linux-4.11-rc1' Makefile:81: recipe for target 'modules' failed make: *** [modules] Error 2 ........................................
Robert Gadsdon. March 5, 2017
The following patches seem to fix VMWare for me. Judging by the error message, adding “#include ” might also work for nVidia.
Vmnet:
diff -ur old/vmnet-only/linux/userif.c vmnet-only/linux/userif.c
— old/vmnet-only/userif.c 2016-11-16 16:23:41.000000000 +0200
+++ vmnet-only/userif.c 2017-03-06 10:32:33.106432185 +0200
@@ -36,6 +36,7 @@
#include
#include
#include
+#include
#include
#include
Vmmon:
diff -ur old/vmmon-only/linux/driver.c vmmon-only/linux/driver.c
— old/vmmon-only/linux/driver.c 2016-11-12 09:15:52.000000000 +0200
+++ vmmon-only/linux/driver.c 2017-03-06 10:46:33.347053458 +0200
@@ -105,7 +105,7 @@
static int LinuxDriver_Close(struct inode *inode, struct file *filp);
static unsigned int LinuxDriverPoll(struct file *file, poll_table *wait);
#if defined(VMW_NOPAGE_2624)
-static int LinuxDriverFault(struct vm_area_struct *vma, struct vm_fault *fault);
+static int LinuxDriverFault(struct vm_fault *fault);
#else
static struct page *LinuxDriverNoPage(struct vm_area_struct *vma,
unsigned long address,
@@ -882,15 +882,14 @@
*/
#if defined(VMW_NOPAGE_2624)
-static int LinuxDriverFault(struct vm_area_struct *vma, //IN
– struct vm_fault *fault) //IN/OUT
+static int LinuxDriverFault(struct vm_fault *fault) //IN/OUT
#else
static struct page *LinuxDriverNoPage(struct vm_area_struct *vma, //IN
unsigned long address, //IN
int *type) //OUT: Fault type
#endif
{
– VMLinux *vmLinux = (VMLinux *) vma->vm_file->private_data;
+ VMLinux *vmLinux = (VMLinux *) fault->vma->vm_file->private_data;
unsigned long pg;
struct page* page;
diff -ur old/vmmon-only/linux/hostif.c vmmon-only/linux/hostif.c
— old/vmmon-only/linux/hostif.c 2016-11-16 16:24:13.000000000 +0200
+++ vmmon-only/linux/hostif.c 2017-03-06 10:36:14.430428787 +0200
@@ -37,6 +37,7 @@
#include
#include
+#include
#include
#include
Let’s try this again.
vmnet.patch: http://pastebin.com/McqmUf0u
vmmon.patch: http://pastebin.com/yjbDHiSX
I think i have the same problem. It here
Stopping VMware services:
VMware Authentication Daemon done
VM communication interface socket family done
Virtual machine communication interface done
Virtual machine monitor done
Blocking file system done
make: Entering directory ‘/tmp/modconfig-VjDerT/vmmon-only’
Using kernel build system.
/sbin/make -C /lib/modules/4.11.2-1-ARCH/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory ‘/usr/lib/modules/4.11.2-1-ARCH/build’
CC [M] /tmp/modconfig-VjDerT/vmmon-only/linux/driverLog.o
CC [M] /tmp/modconfig-VjDerT/vmmon-only/linux/driver.o
CC [M] /tmp/modconfig-VjDerT/vmmon-only/linux/hostif.o
CC [M] /tmp/modconfig-VjDerT/vmmon-only/common/memtrack.o
CC [M] /tmp/modconfig-VjDerT/vmmon-only/common/apic.o
CC [M] /tmp/modconfig-VjDerT/vmmon-only/common/hashFunc.o
CC [M] /tmp/modconfig-VjDerT/vmmon-only/common/vmx86.o
CC [M] /tmp/modconfig-VjDerT/vmmon-only/common/cpuid.o
/tmp/modconfig-VjDerT/vmmon-only/linux/driver.c:121:19: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.fault = LinuxDriverFault
^~~~~~~~~~~~~~~~
/tmp/modconfig-VjDerT/vmmon-only/linux/driver.c:121:19: note: (near initialization for ‘vmuser_mops.fault’)
/tmp/modconfig-VjDerT/vmmon-only/linux/driver.c:1283:1: warning: always_inline function might not be inlinable [-Wattributes]
LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max – TSC min
^~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-VjDerT/vmmon-only/linux/hostif.c: In function ‘HostIFFastClockThread’:
/tmp/modconfig-VjDerT/vmmon-only/linux/hostif.c:3264:4: error: implicit declaration of function ‘allow_signal’ [-Werror=implicit-function-declaration]
allow_signal(SIGKILL);
^~~~~~~~~~~~
/tmp/modconfig-VjDerT/vmmon-only/linux/hostif.c: In function ‘HostIF_SetFastClockRate’:
/tmp/modconfig-VjDerT/vmmon-only/linux/hostif.c:3418:10: error: implicit declaration of function ‘force_sig’ [-Werror=implicit-function-declaration]
force_sig(SIGKILL, linuxState.fastClockThread);
^~~~~~~~~
CC [M] /tmp/modconfig-VjDerT/vmmon-only/common/task.o
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:294: /tmp/modconfig-VjDerT/vmmon-only/linux/driver.o] Error 1
make[2]: *** Waiting for unfinished jobs….
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:294: /tmp/modconfig-VjDerT/vmmon-only/linux/hostif.o] Error 1
/tmp/modconfig-VjDerT/vmmon-only/common/task.o: warning: objtool: .text: unexpected end of section
make[1]: *** [Makefile:1492: _module_/tmp/modconfig-VjDerT/vmmon-only] Error 2
make[1]: Leaving directory ‘/usr/lib/modules/4.11.2-1-ARCH/build’
make: *** [Makefile:120: vmmon.ko] Error 2
make: Leaving directory ‘/tmp/modconfig-VjDerT/vmmon-only’
make: Entering directory ‘/tmp/modconfig-VjDerT/vmnet-only’
Using kernel build system.
/sbin/make -C /lib/modules/4.11.2-1-ARCH/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory ‘/usr/lib/modules/4.11.2-1-ARCH/build’
CC [M] /tmp/modconfig-VjDerT/vmnet-only/driver.o
CC [M] /tmp/modconfig-VjDerT/vmnet-only/hub.o
CC [M] /tmp/modconfig-VjDerT/vmnet-only/userif.o
CC [M] /tmp/modconfig-VjDerT/vmnet-only/netif.o
/tmp/modconfig-VjDerT/vmnet-only/userif.c: In function ‘VNetUserIfRead’:
/tmp/modconfig-VjDerT/vmnet-only/userif.c:745:11: error: implicit declaration of function ‘signal_pending’ [-Werror=implicit-function-declaration]
if (signal_pending(current)) {
^~~~~~~~~~~~~~
In file included from ./include/linux/pci.h:35:0,
from /tmp/modconfig-VjDerT/vmnet-only/compat_netdevice.h:27,
from /tmp/modconfig-VjDerT/vmnet-only/netif.c:43:
./include/linux/pci_ids.h:2255:0: warning: “PCI_VENDOR_ID_VMWARE” redefined
#define PCI_VENDOR_ID_VMWARE 0x15ad
In file included from /tmp/modconfig-VjDerT/vmnet-only/net.h:38:0,
from /tmp/modconfig-VjDerT/vmnet-only/vnetInt.h:26,
from /tmp/modconfig-VjDerT/vmnet-only/netif.c:42:
/tmp/modconfig-VjDerT/vmnet-only/vm_device_version.h:56:0: note: this is the location of the previous definition
#define PCI_VENDOR_ID_VMWARE 0x15AD
In file included from ./include/linux/pci.h:35:0,
from /tmp/modconfig-VjDerT/vmnet-only/compat_netdevice.h:27,
from /tmp/modconfig-VjDerT/vmnet-only/netif.c:43:
./include/linux/pci_ids.h:2256:0: warning: “PCI_DEVICE_ID_VMWARE_VMXNET3” redefined
#define PCI_DEVICE_ID_VMWARE_VMXNET3 0x07b0
In file included from /tmp/modconfig-VjDerT/vmnet-only/net.h:38:0,
from /tmp/modconfig-VjDerT/vmnet-only/vnetInt.h:26,
from /tmp/modconfig-VjDerT/vmnet-only/netif.c:42:
/tmp/modconfig-VjDerT/vmnet-only/vm_device_version.h:73:0: note: this is the location of the previous definition
#define PCI_DEVICE_ID_VMWARE_VMXNET3 0x07B0
CC [M] /tmp/modconfig-VjDerT/vmnet-only/bridge.o
CC [M] /tmp/modconfig-VjDerT/vmnet-only/procfs.o
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:294: /tmp/modconfig-VjDerT/vmnet-only/userif.o] Error 1
make[2]: *** Waiting for unfinished jobs….
In file included from /tmp/modconfig-VjDerT/vmnet-only/net.h:38:0,
from /tmp/modconfig-VjDerT/vmnet-only/vnetInt.h:26,
from /tmp/modconfig-VjDerT/vmnet-only/bridge.c:52:
/tmp/modconfig-VjDerT/vmnet-only/vm_device_version.h:56:0: warning: “PCI_VENDOR_ID_VMWARE” redefined
#define PCI_VENDOR_ID_VMWARE 0x15AD
In file included from ./include/linux/pci.h:35:0,
from /tmp/modconfig-VjDerT/vmnet-only/compat_netdevice.h:27,
from /tmp/modconfig-VjDerT/vmnet-only/bridge.c:51:
./include/linux/pci_ids.h:2255:0: note: this is the location of the previous definition
#define PCI_VENDOR_ID_VMWARE 0x15ad
In file included from /tmp/modconfig-VjDerT/vmnet-only/net.h:38:0,
from /tmp/modconfig-VjDerT/vmnet-only/vnetInt.h:26,
from /tmp/modconfig-VjDerT/vmnet-only/bridge.c:52:
/tmp/modconfig-VjDerT/vmnet-only/vm_device_version.h:73:0: warning: “PCI_DEVICE_ID_VMWARE_VMXNET3” redefined
#define PCI_DEVICE_ID_VMWARE_VMXNET3 0x07B0
In file included from ./include/linux/pci.h:35:0,
from /tmp/modconfig-VjDerT/vmnet-only/compat_netdevice.h:27,
from /tmp/modconfig-VjDerT/vmnet-only/bridge.c:51:
./include/linux/pci_ids.h:2256:0: note: this is the location of the previous definition
#define PCI_DEVICE_ID_VMWARE_VMXNET3 0x07b0
make[1]: *** [Makefile:1492: _module_/tmp/modconfig-VjDerT/vmnet-only] Error 2
make[1]: Leaving directory ‘/usr/lib/modules/4.11.2-1-ARCH/build’
make: *** [Makefile:120: vmnet.ko] Error 2
make: Leaving directory ‘/tmp/modconfig-VjDerT/vmnet-only’
Unable to install all modules. See log for details.
Can you please give me two files back. Or any solution to my problem
Thanks.
I also had this problem with implicit function declarations…
/tmp/modconfig-VjDerT/vmmon-only/linux/hostif.c: In function ‘HostIFFastClockThread’:
/tmp/modconfig-VjDerT/vmmon-only/linux/hostif.c:3264:4: error: implicit declaration of function ‘allow_signal’ [-Werror=implicit-function-declaration]
allow_signal(SIGKILL);
^~~~~~~~~~~~
/tmp/modconfig-VjDerT/vmmon-only/linux/hostif.c: In function ‘HostIF_SetFastClockRate’:
/tmp/modconfig-VjDerT/vmmon-only/linux/hostif.c:3418:10: error: implicit declaration of function ‘force_sig’ [-Werror=implicit-function-declaration]
force_sig(SIGKILL, linuxState.fastClockThread);
Not to be deterred (what’s the worst that can happen – vmware didn’t work anyway) I just commented out the 2 implicit function declarations, recompiled the modules and hey presto – vmware is up and running again…
As per your compilation errors, inside vmmon-only/linux/hostif.c at line numbers 3264 and 3418, just comment out the lines
/* line3264 allow_signal(SIGKILL); */
/* line3418 force_sig(SIGKILL, linuxState.fastClockThread); */
recompile (sudo vmware-modconfig –console –install-all) and you shouldn’t have these errors anymore…
Good luck.
I was having trouble… And yes! your patch fixed my problem with vmware-patch on Arch Linux 4.11.2-1 with Nvidia and VMware 12.1.0. Thanks loads!
A big thanks for Virgo for those patches. People like you are the real MVP 🙂 !
I can happily confirm that it also works with 4.11.9-1-ARCH.
Thanks a bunch!
Sven