You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
calculate-overlay/app-emulation/vmware-modules/files/308-4.09-00-user-pages-p1.p...

40 lines
1.5 KiB

--- ./vmci-only/linux/vmciKernelIf.c 2017-02-23 12:19:59.706822502 +0100
+++ ./vmci-only/linux/vmciKernelIf.c.new 2017-02-23 13:12:09.382997502 +0100
@@ -2056,7 +2056,11 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
retval = get_user_pages((VA)produceUVA,
produceQ->kernelIf->numPages,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+ FOLL_WRITE,
+#else
1, 0,
+#endif
produceQ->kernelIf->u.h.headerPage,
NULL);
#else
@@ -2083,7 +2087,11 @@
(VA)consumeUVA,
#endif
consumeQ->kernelIf->numPages,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+ FOLL_WRITE,
+#else
1, 0,
+#endif
consumeQ->kernelIf->u.h.headerPage,
NULL);
if (retval < consumeQ->kernelIf->numPages) {
--- ./vmci-only/linux/driver.c 2017-02-23 12:19:59.645822499 +0100
+++ ./vmci-only/linux/driver.c.new 2017-02-23 12:30:38.845858240 +0100
@@ -1468,7 +1468,9 @@
int retval;
down_read(&current->mm->mmap_sem);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+ retval = get_user_pages(addr, 1, FOLL_WRITE, &page, NULL);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
#else
retval = get_user_pages(current, current->mm, addr,