summarylogtreecommitdiffstats
path: root/4.6-arch-get_user_pages-page_cache_release.patch
diff options
context:
space:
mode:
Diffstat (limited to '4.6-arch-get_user_pages-page_cache_release.patch')
-rw-r--r--4.6-arch-get_user_pages-page_cache_release.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/4.6-arch-get_user_pages-page_cache_release.patch b/4.6-arch-get_user_pages-page_cache_release.patch
new file mode 100644
index 000000000000..f931c05558c5
--- /dev/null
+++ b/4.6-arch-get_user_pages-page_cache_release.patch
@@ -0,0 +1,26 @@
+--- 16.5/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-12-18 19:47:41.000000000 +0100
++++ 16.5b/common/lib/modules/fglrx/build_mod/firegl_public.c 2016-05-09 20:29:48.227025117 +0200
+@@ -3220,7 +3220,11 @@
+ int ret;
+
+ down_read(&current->mm->mmap_sem);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
++ ret = get_user_pages_remote(current, current->mm, vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);
++#else
+ ret = get_user_pages(current, current->mm, vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);
++#endif
+ up_read(&current->mm->mmap_sem);
+
+ return ret;
+@@ -3249,7 +3257,11 @@
+ unsigned int i;
+ for (i=0; i<page_cnt; i++)
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
++ put_page((struct page*)page_list[i]);
++#else
+ page_cache_release((struct page*)page_list[i]);
++#endif
+ }
+ }
+