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


Comments

Kernel – 4.11-rc1 Released – Breaks (Patched) VMware and NVIDIA.. — 2 Comments

  1. 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

Leave a Reply

Your email address will not be published. Required fields are marked *