At some point the function prototype changed from this:
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
unsigned long start, unsigned long nr_pages,
int write, int force, struct page **pages,
struct vm_area_struct **vmas);
into this:
long get_user_pages(unsigned long start, unsigned long nr_pages,
unsigned int gup_flags, struct page **pages,
struct vm_area_struct **vmas);
With the individual 'write' and 'force' flags transforming into gup_flags per
this patch:
https://patchwork.kernel.org/project/linux-arm-kernel/patch/
20161013002020.3062-7-lstoakes@gmail.com/
}
pinned_pages->nr_pages = get_user_pages(
}
pinned_pages->nr_pages = get_user_pages(
(uint64_t)addr,
nr_pages,
(uint64_t)addr,
nr_pages,
- !!(prot & SCIF_PROT_WRITE),
- 0,
+ prot & SCIF_PROT_WRITE ? FOLL_WRITE : 0,
pinned_pages->pages,
pinned_pages->vma);
up_write(&mm->mmap_sem);
pinned_pages->pages,
pinned_pages->vma);
up_write(&mm->mmap_sem);