Public bug reported: I'm running Vivid Vervet including nvidia-304, 304.125-0ubuntu1. A usual update batch containing kernel-3.19.0-7 just became available and I upgraded to it. The net result was, that after boot I got a black screen. In other words the X-server failed to start, because it couldn't find the nvidia kernel driver. Checking the apt log revealed, that building the nvidia kernel module indeed failed during the kernel 3.19 installation. The relevant info from the DKMS build attempt:
/var/lib/dkms/nvidia-304/304.125/build/nv.c: In function ‘nv_kern_unlocked_ioctl’: /var/lib/dkms/nvidia-304/304.125/build/nv.c:2029:30: error: ‘struct file’ has no member named ‘f_dentry’ return nv_kern_ioctl(file->f_dentry->d_inode, file, cmd, i_arg); /var/lib/dkms/nvidia-304/304.125/build/nv.c: In function ‘nv_kern_compat_ioctl’: /var/lib/dkms/nvidia-304/304.125/build/nv.c:2038:30: error: ‘struct file’ has no member named ‘f_dentry’ return nv_kern_ioctl(file->f_dentry->d_inode, file, cmd, i_arg); Differencing the definition of "struct file" between my previous and new kernel headers reveals: *** /usr/src/linux-headers-3.18.0-13/include/linux/fs.h 2015-02-06 11:54:53.000000000 +0200 --- /usr/src/linux-headers-3.19.0-7/include/linux/fs.h 2015-02-24 16:31:18.000000000 +0200 ... *** 786,798 **** struct file { union { struct llist_node fu_llist; struct rcu_head fu_rcuhead; } f_u; struct path f_path; - #define f_dentry f_path.dentry struct inode *f_inode; /* cached value */ const struct file_operations *f_op; /* * Protects f_ep_links, f_flags. * Must not be taken from IRQ context. --- 804,815 ---- ... So apparently that "#define f_dentry" is no longer present in kernel 3.19, and nvidia-code needs to be changed accordingly. I did that for my system by editing "nv.c" and "apt reinstalling" the kernel packages, and now I have a functioning X-display on kernel 3.19, too. See below: 2029c2029 < return nv_kern_ioctl(file->f_dentry->d_inode, file, cmd, i_arg); --- > return nv_kern_ioctl(file->f_path.dentry->d_inode, file, cmd, i_arg); 2038c2038 < return nv_kern_ioctl(file->f_dentry->d_inode, file, cmd, i_arg); --- > return nv_kern_ioctl(file->f_path.dentry->d_inode, file, cmd, i_arg); Could someone upstream make that available for everyone? (Sorry, so far I'm merely a lurker and I don't check out/in changes by myself.) ProblemType: Bug DistroRelease: Ubuntu 15.04 Package: nvidia-304 304.125-0ubuntu1 [modified: usr/src/nvidia-304-304.125/nv.c] ProcVersionSignature: Ubuntu 3.19.0-7.7-generic 3.19.0 Uname: Linux 3.19.0-7-generic x86_64 NonfreeKernelModules: nvidia ApportVersion: 2.16.1-0ubuntu2 Architecture: amd64 CurrentDesktop: KDE Date: Mon Mar 2 09:15:35 2015 InstallationDate: Installed on 2015-01-16 (44 days ago) InstallationMedia: Kubuntu 15.04 "Vivid Vervet" - Alpha amd64 (20150114) SourcePackage: nvidia-graphics-drivers-304 UpgradeStatus: No upgrade log present (probably fresh install) ** Affects: nvidia-graphics-drivers-304 (Ubuntu) Importance: Undecided Status: New ** Tags: amd64 apport-bug vivid -- You received this bug notification because you are a member of Ubuntu-X, which is subscribed to nvidia-graphics-drivers-304 in Ubuntu. https://bugs.launchpad.net/bugs/1427107 Title: The DKMS building of the nvidia-304 kernel module fails on kernel-3.19 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-304/+bug/1427107/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~ubuntu-x-swat Post to : ubuntu-x-swat@lists.launchpad.net Unsubscribe : https://launchpad.net/~ubuntu-x-swat More help : https://help.launchpad.net/ListHelp