summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDet2016-08-16 20:39:57 +0300
committerDet2016-08-16 20:39:57 +0300
commit36045de20385e23420fc55bb30572f7a80683c42 (patch)
treea1f28d756c4d9cc5d3098abb1b58d35ff1ef0139
parentd24ad5bf10513dfa19808bd5d11de4c692aa8dda (diff)
downloadaur-36045de20385e23420fc55bb30572f7a80683c42.tar.gz
Fix build for 4.7 + add patch for 4.8
-rw-r--r--.SRCINFO2
-rw-r--r--PKGBUILD4
-rw-r--r--linux-4.7.patch48
-rw-r--r--linux-4.8.patch74
4 files changed, 78 insertions, 50 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b51c6e877e46..ef8e845c6ae2 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -10,7 +10,9 @@ pkgbase = nvidia-full-beta
makedepends = linux-headers
options = !strip
source = 20-nvidia.conf
+ source = linux-4.8.patch
md5sums = 2640eac092c220073f0668a7aaff61f7
+ md5sums = 575708b8db401ff82ee4a26e491cc0da
source_i686 = http://us.download.nvidia.com/XFree86/Linux-x86/370.23/NVIDIA-Linux-x86-370.23.run
md5sums_i686 = 7b7466e23ae6ffa97106c9749aee2628
source_x86_64 = http://us.download.nvidia.com/XFree86/Linux-x86_64/370.23/NVIDIA-Linux-x86_64-370.23-no-compat32.run
diff --git a/PKGBUILD b/PKGBUILD
index 7ed9a9b38937..b7294c940d01 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -27,11 +27,11 @@ fi
# Source
source=('20-nvidia.conf'
- 'linux-4.7.patch')
+ 'linux-4.8.patch')
source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/$pkgver/NVIDIA-Linux-x86-$pkgver.run")
source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/$pkgver/$_pkg.run")
md5sums=('2640eac092c220073f0668a7aaff61f7'
- '0b68fdfd7b43a20e47a3ddb06004e820')
+ '575708b8db401ff82ee4a26e491cc0da')
md5sums_i686=('7b7466e23ae6ffa97106c9749aee2628')
md5sums_x86_64=('cbe2cee787e07f8775a3fd994c9263a9')
[[ $_pkg = NVIDIA-Linux-x86_64-$pkgver ]] && md5sums_x86_64=('65b99201ca894ea9a878593fbb19f0a3')
diff --git a/linux-4.7.patch b/linux-4.7.patch
deleted file mode 100644
index d1d2a1ace76a..000000000000
--- a/linux-4.7.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -Npur a/kernel/nvidia-drm/nvidia-drm-fb.c b/kernel/nvidia-drm/nvidia-drm-fb.c
---- a/kernel/nvidia-drm/nvidia-drm-fb.c 2016-06-04 14:35:34.039874000 +0200
-+++ b/kernel/nvidia-drm/nvidia-drm-fb.c 2016-06-04 14:40:03.137790083 +0200
-@@ -114,7 +114,7 @@ static struct drm_framebuffer *internal_
- * We don't support any planar format, pick up first buffer only.
- */
-
-- gem = drm_gem_object_lookup(dev, file, cmd->handles[0]);
-+ gem = drm_gem_object_lookup(file, cmd->handles[0]);
-
- if (gem == NULL)
- {
-diff -Npur a/kernel/nvidia-drm/nvidia-drm-gem.c b/kernel/nvidia-drm/nvidia-drm-gem.c
---- a/kernel/nvidia-drm/nvidia-drm-gem.c 2016-04-19 22:31:08.000000000 +0200
-+++ b/kernel/nvidia-drm/nvidia-drm-gem.c 2016-06-04 14:37:28.833902856 +0200
-@@ -405,7 +405,7 @@ int nvidia_drm_dumb_map_offset
-
- mutex_lock(&dev->struct_mutex);
-
-- gem = drm_gem_object_lookup(dev, file, handle);
-+ gem = drm_gem_object_lookup(file, handle);
-
- if (gem == NULL)
- {
-diff -Npur a/kernel/nvidia-uvm/uvm8_gpu.c b/kernel/nvidia-uvm/uvm8_gpu.c
---- a/kernel/nvidia-uvm/uvm8_gpu.c 2016-04-19 22:33:14.000000000 +0200
-+++ b/kernel/nvidia-uvm/uvm8_gpu.c 2016-06-04 14:30:07.363305134 +0200
-@@ -525,7 +525,7 @@ static void remove_gpu(uvm_gpu_t *gpu)
- gpu->id, uvm_gpu_retained_count(gpu));
-
- // All channels should have been removed before the retained count went to 0
-- UVM_ASSERT(radix_tree_empty(&gpu->instance_ptr_table));
-+ UVM_ASSERT(radix_tree_is_empty(&gpu->instance_ptr_table));
-
- // Remove the GPU from the table.
- uvm_spin_lock_irqsave(&g_uvm_global.gpu_table_lock);
-diff -Npur a/kernel/nvidia-uvm/uvm_linux.h b/kernel/nvidia-uvm/uvm_linux.h
---- a/kernel/nvidia-uvm/uvm_linux.h 2016-04-19 22:33:14.000000000 +0200
-+++ b/kernel/nvidia-uvm/uvm_linux.h 2016-06-04 14:30:07.553400122 +0200
-@@ -547,7 +547,7 @@ static void uvm_init_radix_tree_preloada
- INIT_RADIX_TREE(tree, GFP_NOWAIT);
- }
-
--static bool radix_tree_empty(struct radix_tree_root *tree)
-+static bool radix_tree_is_empty(struct radix_tree_root *tree)
- {
- void *dummy;
- return radix_tree_gang_lookup(tree, &dummy, 0, 1) == 0;
diff --git a/linux-4.8.patch b/linux-4.8.patch
new file mode 100644
index 000000000000..f8302d13ef6f
--- /dev/null
+++ b/linux-4.8.patch
@@ -0,0 +1,74 @@
+diff -u --recursive NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-drv.c patched_NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-drv.c
+--- NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-drv.c 2016-07-25 13:23:10.000000000 +0200
++++ patched_NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-drv.c 2016-08-02 17:09:53.500398878 +0200
+@@ -36,6 +36,7 @@
+ #include "nvidia-drm-ioctl.h"
+
+ #include <drm/drmP.h>
++#include <drm/drm_auth.h>
+
+ #include <drm/drm_crtc_helper.h>
+
+@@ -419,7 +420,7 @@
+
+ static
+ void nvidia_drm_master_drop(struct drm_device *dev,
+- struct drm_file *file_priv, bool from_release)
++ struct drm_file *file_priv)
+ {
+ struct nvidia_drm_device *nv_dev = dev->dev_private;
+ int ret;
+@@ -452,7 +453,7 @@
+ mutex_lock(&dev->master_mutex);
+
+ if (!file_priv->is_master ||
+- !file_priv->minor->master)
++ !file_priv->master)
+ {
+ goto done;
+ }
+@@ -473,7 +474,7 @@
+ * NVKMS modeset ownership, because nvidia_drm_master_set()'s call to
+ * grabOwnership() will fail.
+ */
+- drm_master_put(&file_priv->minor->master);
++ drm_master_put(&file_priv->master);
+ file_priv->is_master = 0;
+
+ ret = 0;
+diff -u --recursive NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-fb.c patched_NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-fb.c
+--- NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-fb.c 2016-07-25 13:23:10.000000000 +0200
++++ patched_NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-fb.c 2016-07-31 05:37:57.013950532 +0200
+@@ -114,7 +114,7 @@
+ * We don't support any planar format, pick up first buffer only.
+ */
+
+- gem = drm_gem_object_lookup(dev, file, cmd->handles[0]);
++ gem = drm_gem_object_lookup(file, cmd->handles[0]);
+
+ if (gem == NULL)
+ {
+diff -u --recursive NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-gem.c patched_NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-gem.c
+--- NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-gem.c 2016-07-25 13:23:10.000000000 +0200
++++ patched_NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-gem.c 2016-07-31 05:37:57.013950532 +0200
+@@ -408,7 +408,7 @@
+
+ mutex_lock(&dev->struct_mutex);
+
+- gem = drm_gem_object_lookup(dev, file, handle);
++ gem = drm_gem_object_lookup(file, handle);
+
+ if (gem == NULL)
+ {
+diff -u --recursive NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-modeset.c patched_NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-modeset.c
+--- NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-modeset.c 2016-07-25 13:23:10.000000000 +0200
++++ patched_NVIDIA-Linux-x86_64-367.36.02/kernel/nvidia-drm/nvidia-drm-modeset.c 2016-08-02 17:14:57.895422720 +0200
+@@ -675,7 +675,7 @@
+ goto failed;
+ }
+
+- drm_atomic_helper_swap_state(dev, state);
++ drm_atomic_helper_swap_state(state, true);
+
+ nvidia_drm_update_head_mode_config(state, requested_config);
+ \ No newline at end of file