From f126e4837e6334d0464540995df7426fedf6b175 Mon Sep 17 00:00:00 2001
From: Michael Weiser <michael.weiser@gmx.de>
Date: Fri, 11 Nov 2016 18:09:32 +0100
Subject: [PATCH] Adjust to another change in the user page API

4.9.0 will replace the write and force flags of get_user_pages_remote()
with a gup_flags parameter[1]. Distinguish the two APIs based on kernel
version we're compiling for.

[1] https://github.com/torvalds/linux/commit/9beae1ea89305a9667ceaab6d0bf46a045ad71e7

Upstream-Status: Backport

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
---
 zc.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/zc.c b/zc.c
index a97b49f..e766ee3 100644
--- a/zc.c
+++ b/zc.c
@@ -65,7 +65,13 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
 	ret = get_user_pages(
 #endif
 			task, mm,
-			(unsigned long)addr, pgcount, write, 0, pg, NULL);
+			(unsigned long)addr, pgcount,
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0))
+			write ? FOLL_WRITE : 0,
+#else
+			write, 0,
+#endif
+			pg, NULL);
 	up_read(&mm->mmap_sem);
 	if (ret != pgcount)
 		return -EINVAL;
-- 
1.9.1

