Kernel 3.19-rc1 – Breaks VMware and NVIDIA..
Just installed Kernel 3.19-rc1 on the test system, and both VMware and NVIDIA fail to compile..
VMware (11.0) vmnet failed with:
/tmp/modconfig-2fqpf2/vmnet-only/driver.c: In function ‘VNetFileOpUnlockedIoctl’: /tmp/modconfig-2fqpf2/vmnet-only/driver.c:1194:20: error: ‘struct file’ has no member named ‘f_dentry’ if (filp && filp->f_dentry) { ^ /tmp/modconfig-2fqpf2/vmnet-only/driver.c:1195:19: error: ‘struct file’ has no member named ‘f_dentry’ inode = filp->f_dentry->d_inode; ^ scripts/Makefile.build:257: recipe for target '/tmp/modconfig-2fqpf2/vmnet-only/driver.o' failed make[2]: *** [/tmp/modconfig-2fqpf2/vmnet-only/driver.o] Error 1 make[2]: *** Waiting for unfinished jobs.... Makefile:1381: recipe for target '_module_/tmp/modconfig-2fqpf2/vmnet-only' failed make[1]: *** [_module_/tmp/modconfig-2fqpf2/vmnet-only] Error 2 make[1]: Leaving directory '/usr/src/linux-3.19-rc1' Makefile:120: recipe for target 'vmnet.ko' failed make: *** [vmnet.ko] Error 2
I found references to this particular error in a patch for zfs, and tried replacing ‘f_dentry’ by ‘f_path.dentry’… and driver.c compiled ok, but then:
/tmp/modconfig-dy2ali/vmnet-only/userif.c: In function ‘VNetCopyDatagram’: /tmp/modconfig-dy2ali/vmnet-only/userif.c:526:4: error: implicit declaration of function ‘skb_copy_datagram_iovec’ [-Werror=implicit-function-declaration] return skb_copy_datagram_iovec(skb, 0, &iov, len); ^ cc1: some warnings being treated as errors scripts/Makefile.build:257: recipe for target '/tmp/modconfig-dy2ali/vmnet-only/userif.o' failed make[2]: *** [/tmp/modconfig-dy2ali/vmnet-only/userif.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from include/linux/pci.h:34:0, from /tmp/modconfig-dy2ali/vmnet-only/compat_netdevice.h:27, from /tmp/modconfig-dy2ali/vmnet-only/netif.c:43: include/linux/pci_ids.h:2251:0: warning: "PCI_VENDOR_ID_VMWARE" redefined #define PCI_VENDOR_ID_VMWARE 0x15ad ^ In file included from /tmp/modconfig-dy2ali/vmnet-only/net.h:38:0, from /tmp/modconfig-dy2ali/vmnet-only/vnetInt.h:26, from /tmp/modconfig-dy2ali/vmnet-only/netif.c:42: /tmp/modconfig-dy2ali/vmnet-only/vm_device_version.h:56:0: note: this is the location of the previous definition #define PCI_VENDOR_ID_VMWARE 0x15AD ^ Makefile:1381: recipe for target '_module_/tmp/modconfig-dy2ali/vmnet-only' failed make[1]: *** [_module_/tmp/modconfig-dy2ali/vmnet-only] Error 2 make[1]: Leaving directory '/usr/src/linux-3.19-rc1' Makefile:120: recipe for target 'vmnet.ko' failed make: *** [vmnet.ko] Error 2
NVIDIA (340.65) failed with:
/home/rgadsdon/NVIDIA-Linux-x86_64-340.65/kernel/nv.c: In function ‘nvidia_unlocked_ioctl’: /home/rgadsdon/NVIDIA-Linux-x86_64-340.65/kernel/nv.c:1842:29: error: ‘struct file’ has no member named ‘f_dentry’ return nvidia_ioctl(file->f_dentry->d_inode, file, cmd, i_arg); ^ /usr/src/linux-3.19-rc1/scripts/Makefile.build:257: recipe for target '/home/rgadsdon/NVIDIA-Linux-x86_64-340.65/kernel/nv.o' failed make[3]: *** [/home/rgadsdon/NVIDIA-Linux-x86_64-340.65/kernel/nv.o] Error 1 /usr/src/linux-3.19-rc1/Makefile:1381: recipe for target '_module_/home/rgadsdon/NVIDIA-Linux-x86_64-340.65/kernel' failed
and replacing ‘f_dentry’ with ‘f_path.dentry’ in nv.c and nv-frontend.c compiled OK, until:
FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol '__cachemode2pte_tbl' /usr/src/linux-3.19-rc1/scripts/Makefile.modpost:90: recipe for target '__modpost' failed make[3]: *** [__modpost] Error 1 /usr/src/linux-3.19-rc1/Makefile:1384: recipe for target 'modules' failed make[2]: *** [modules] Error 2
So.. More research is needed!
My main system is staying on 3.16.7 for the time being, as the ‘lockups’ problem is still unsolved….
Robert Gadsdon. December 21, 2014.
Comments
Kernel 3.19-rc1 – Breaks VMware and NVIDIA.. — No Comments