cryptodev: update to handle 4.10 kernel API

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2017-03-03 16:06:32 +00:00 committed by Richard Purdie
parent 977047fb99
commit e0839dd113
2 changed files with 59 additions and 1 deletions

View File

@ -6,7 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "http://download.gna.org/cryptodev-linux/cryptodev-linux-${PV}.tar.gz \
file://06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch \
file://cb186f682679383e8b5806240927903730ce85d9.patch \
file://0001-Adjust-to-another-change-in-the-user-page-API.patch"
file://0001-Adjust-to-another-change-in-the-user-page-API.patch \
file://kernel-4-10-changes.patch"
SRC_URI[md5sum] = "02644cc4cd02301e0b503a332eb2f0b5"
SRC_URI[sha256sum] = "67fabde9fb67b286a96c4f45b594b0eccd0f761b495705c18f2ae9461b831376"

View File

@ -0,0 +1,57 @@
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>
From 2b29be8ac41414ed19cb4f5d5626d9bd0d7b11a8 Mon Sep 17 00:00:00 2001
From: Cristian Stoica <cristian.stoica@nxp.com>
Date: Wed, 8 Feb 2017 12:11:04 +0200
Subject: [PATCH] adjust to API changes in kernel >=4.10
There are many changes related to get_user_pages and the code is rewritten
for clarity.
Signed-off-by: Cristian Stoica <cristian.stoica@nxp.com>
---
zc.c | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/zc.c b/zc.c
index e766ee3..2f4ea99 100644
--- a/zc.c
+++ b/zc.c
@@ -59,19 +59,25 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
}
down_read(&mm->mmap_sem);
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0))
- ret = get_user_pages_remote(
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0))
+ ret = get_user_pages(task, mm,
+ (unsigned long)addr, pgcount, write, 0, pg, NULL);
#else
- ret = get_user_pages(
-#endif
- task, mm,
- (unsigned long)addr, pgcount,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0))
- write ? FOLL_WRITE : 0,
-#else
- write, 0,
-#endif
+# if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0))
+ ret = get_user_pages_remote(task, mm,
+ (unsigned long)addr, pgcount, write, 0, pg, NULL);
+# else
+# if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0))
+ ret = get_user_pages_remote(task, mm,
+ (unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
pg, NULL);
+# else
+ ret = get_user_pages_remote(task, mm,
+ (unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
+ pg, NULL, NULL);
+# endif
+# endif
+#endif
up_read(&mm->mmap_sem);
if (ret != pgcount)
return -EINVAL;