summaryrefslogtreecommitdiffstats
path: root/system/nvidia-legacy304-kernel/disable-mtrr.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/nvidia-legacy304-kernel/disable-mtrr.patch')
-rw-r--r--system/nvidia-legacy304-kernel/disable-mtrr.patch25
1 files changed, 25 insertions, 0 deletions
diff --git a/system/nvidia-legacy304-kernel/disable-mtrr.patch b/system/nvidia-legacy304-kernel/disable-mtrr.patch
new file mode 100644
index 0000000000..326c287ec3
--- /dev/null
+++ b/system/nvidia-legacy304-kernel/disable-mtrr.patch
@@ -0,0 +1,25 @@
+Author: Luca Boccassi <luca.boccassi@gmail.com>
+Description: Disable MTRR on kernel >= 4.3
+ From kernel 4.3 and newer (commit 2baa891e42d84) mtrr_add and mtrr_del are no
+ longer exported. The Nvidia kernel shim still uses it as of 304.131, causing
+ the module to error out when loading. Disable MTRR if running on 4.3 or greater
+ until upstream fixes it.
+
+--- a/nv-linux.h
++++ b/nv-linux.h
+@@ -256,6 +256,15 @@
+ #include <linux/seq_file.h>
+ #endif
+
++/*
++ * As of version 304.131, os-agp.c and os-mtrr.c still use deprecated
++ * kernel APIs for mtrr which are no longer exported since 4.3, causing
++ * the module to error out when loaded.
++ */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
++#undef CONFIG_MTRR
++#endif
++
+ #if !defined(NV_VMWARE) && defined(CONFIG_MTRR)
+ #include <asm/mtrr.h>
+ #endif