← Back to team overview

desktop-packages team mailing list archive

[Bug 1427107] Re: The DKMS building of the nvidia-304 kernel module fails on kernel-3.19

 

** Also affects: nvidia
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Desktop
Packages, 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

Status in Nvidia Feature Request and Bug Reporting:
  New
Status in nvidia-graphics-drivers-304 package in Ubuntu:
  New

Bug description:
  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)

To manage notifications about this bug go to:
https://bugs.launchpad.net/nvidia/+bug/1427107/+subscriptions


References