Package: mali-midgard / 16.0+pristine-4

use-vmf-struct-update.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
--- /dev/null
+++ a/driver/product/kernel/drivers/gpu/arm/midgard/patches/use-vmf-struct-update.patch
@@ -0,0 +1,35 @@
+Description: Fixes to allow midgard r16p0 to build against 4.14 headers
+ Update to only pass vmf fault struct
+Author: Guillaume Tucker <guillaume.tucker@collabora.com>
+Forwarded: no
+Reviewed-By: Wookey <wookey@debian.org>
+Last-Update: 2018-01-15
+
+--- a/mali_kbase_mem_linux.c
++++ b/mali_kbase_mem_linux.c
+@@ -1711,9 +1711,9 @@ static void kbase_cpu_vm_close(struct vm
+ KBASE_EXPORT_TEST_API(kbase_cpu_vm_close);
+ 
+ 
+-static int kbase_cpu_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
++static int kbase_cpu_vm_fault(struct vm_fault *vmf)
+ {
+-	struct kbase_cpu_mapping *map = vma->vm_private_data;
++	struct kbase_cpu_mapping *map = vmf->vma->vm_private_data;
+ 	pgoff_t rel_pgoff;
+ 	size_t i;
+ 	pgoff_t addr;
+@@ -1735,9 +1735,10 @@ static int kbase_cpu_vm_fault(struct vm_
+ 
+ 	/* insert all valid pages from the fault location */
+ 	i = rel_pgoff;
+-	addr = (pgoff_t)((uintptr_t)vmf->virtual_address >> PAGE_SHIFT);
+-	while (i < map->alloc->nents && (addr < vma->vm_end >> PAGE_SHIFT)) {
+-		int ret = vm_insert_pfn(vma, addr << PAGE_SHIFT,
++	addr = (pgoff_t)((uintptr_t)vmf->address >> PAGE_SHIFT);
++	while (i < map->alloc->nents &&
++	       (addr < vmf->vma->vm_end >> PAGE_SHIFT)) {
++		int ret = vm_insert_pfn(vmf->vma, addr << PAGE_SHIFT,
+ 		    PFN_DOWN(map->alloc->pages[i]));
+ 		if (ret < 0 && ret != -EBUSY)
+ 			goto locked_bad_fault;