NVIDIA – Beta Driver 378.09 – Still Broken with Kernel 4.10

New beta driver 378.09 has been released, and details are here:  http://www.nvidia.com/download/driverResults.aspx/114232/en-us

The driver compiles OK with Kernel 4.9.4, but fails to compile with 4.10-rc4, with different errors from 375.26, as some of the code base has changed..

......................
CC [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-p2p.o
 CC [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.o
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c: In function ‘nvidia_cpu_callback’:
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:213:14: error: ‘CPU_DOWN_FAILED’ undeclared (first use in this function)
 case CPU_DOWN_FAILED:
 ^~~~~~~~~~~~~~~
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:213:14: note: each undeclared identifier is reported only once for each function it appears in
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:220:14: error: ‘CPU_DOWN_PREPARE’ undeclared (first use in this function)
 case CPU_DOWN_PREPARE:
 ^~~~~~~~~~~~~~~~
In file included from /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:15:0:
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c: In function ‘nv_init_pat_support’:
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/common/inc/nv-linux.h:391:34: error: implicit declaration of function ‘register_cpu_notifier’ [-Werror=implicit-function-declaration]
 #define register_hotcpu_notifier register_cpu_notifier
 ^
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:258:17: note: in expansion of macro ‘register_hotcpu_notifier’
 if (register_hotcpu_notifier(&nv_hotcpu_nfb) != 0)
 ^~~~~~~~~~~~~~~~~~~~~~~~
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c: In function ‘nv_teardown_pat_support’:
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/common/inc/nv-linux.h:388:36: error: implicit declaration of function ‘unregister_cpu_notifier’ [-Werror=implicit-function-declaration]
 #define unregister_hotcpu_notifier unregister_cpu_notifier
 ^
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.c:283:9: note: in expansion of macro ‘unregister_hotcpu_notifier’
 unregister_hotcpu_notifier(&nv_hotcpu_nfb);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
/usr/src/linux-4.10-rc4/scripts/Makefile.build:293: recipe for target '/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.o' failed
make[3]: *** [/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel/nvidia/nv-pat.o] Error 1
/usr/src/linux-4.10-rc4/Makefile:1490: recipe for target '_module_/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel' failed
make[2]: *** [_module_/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-378.09/kernel] Error 2
make[2]: Leaving directory '/usr/src/linux-4.10-rc4'
Makefile:150: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-4.10-rc4'
Makefile:81: recipe for target 'modules' failed
make: *** [modules] Error 2

And.. as expected, the patch for 375.26 does not work, as some of the code, headers, etc. are different, or files no longer exist:

.................
patching file a/kernel/common/inc/nv-mm.h
Hunk #1 FAILED at 83.
1 out of 1 hunk FAILED -- saving rejects to file a/kernel/common/inc/nv-mm.h.rej
..................
patching file a/kernel/nvidia-drm/nvidia-drm-modeset.c
Hunk #1 succeeded at 78 (offset 9 lines).
Hunk #2 FAILED at 644.
Hunk #3 FAILED at 982.
2 out of 3 hunks FAILED -- saving rejects to file a/kernel/nvidia-drm/nvidia-drm-modeset.c.rej
..........................
patching file a/kernel/nvidia-uvm/uvm8.c
Hunk #1 FAILED at 101.
Hunk #2 FAILED at 315.
2 out of 2 hunks FAILED -- saving rejects to file a/kernel/nvidia-uvm/uvm8.c.rej
patching file a/kernel/nvidia-uvm/uvm8_test.c
can't find file to patch at input line 342
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -ur a/kernel/nvidia-uvm/uvm_lite.c b/kernel/nvidia-uvm/uvm_lite.c
...........................

So, for the time being, stay with 375.26 (patched) on 4.10-rc…

Robert Gadsdon.    January 18, 2017.


Comments

NVIDIA – Beta Driver 378.09 – Still Broken with Kernel 4.10 — 2 Comments

    • updated the thread, hotplug workaround still required.
      I kinda wanna fix it but I don’t use hibernation so there is little incentive for me to do so.
      Has anybody tried to use patched drivers with hibernation/suspend? Does it crash upon restoring state as I suspect it might?

Leave a Reply

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