Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 583244
Collapse All | Expand All

(-)b/vmblock-only/linux/inode.c (-3 / +9 lines)
Lines 44-50 static struct dentry *InodeOpLookup(stru Link Here
44
static int InodeOpReadlink(struct dentry *, char __user *, int);
44
static int InodeOpReadlink(struct dentry *, char __user *, int);
45
#endif
45
#endif
46
46
47
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
47
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
48
static const char *InodeOpFollowlink(struct dentry *dentry, struct inode *inode, struct delayed_call *done);
49
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
48
static const char *InodeOpFollowlink(struct dentry *dentry, struct inode *inode, void **cookie);
50
static const char *InodeOpFollowlink(struct dentry *dentry, struct inode *inode, void **cookie);
49
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
51
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
50
static const char *InodeOpFollowlink(struct dentry *dentry, void **cookie);
52
static const char *InodeOpFollowlink(struct dentry *dentry, void **cookie);
Lines 240-246 InodeOpFollowlink(struct dentry *dentry, Link Here
240
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
242
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
241
                  struct inode *inode,
243
                  struct inode *inode,
242
#endif
244
#endif
243
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
245
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
246
                  struct delayed_call *done)
247
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
244
                  void **cookie)          // OUT: stores opaque pointer
248
                  void **cookie)          // OUT: stores opaque pointer
245
#else
249
#else
246
                  struct nameidata *nd)   // OUT: stores result
250
                  struct nameidata *nd)   // OUT: stores result
Lines 269-275 InodeOpFollowlink(struct dentry *dentry, Link Here
269
      goto out;
273
      goto out;
270
   }
274
   }
271
275
272
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
276
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
277
   return iinfo->name;
278
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
273
   return *cookie = iinfo->name;
279
   return *cookie = iinfo->name;
274
#else
280
#else
275
   nd_set_link(nd, iinfo->name);
281
   nd_set_link(nd, iinfo->name);
(-)b/vmci-only/linux/driver.c (+4 lines)
Lines 1468-1475 VMCIUserVALockPage(VA addr) // IN: Link Here
1468
   int retval;
1468
   int retval;
1469
1469
1470
   down_read(&current->mm->mmap_sem);
1470
   down_read(&current->mm->mmap_sem);
1471
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
1472
   retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
1473
#else
1471
   retval = get_user_pages(current, current->mm, addr,
1474
   retval = get_user_pages(current, current->mm, addr,
1472
                           1, 1, 0, &page, NULL);
1475
                           1, 1, 0, &page, NULL);
1476
#endif
1473
   up_read(&current->mm->mmap_sem);
1477
   up_read(&current->mm->mmap_sem);
1474
1478
1475
   if (retval != 1) {
1479
   if (retval != 1) {
(-)b/vmci-only/linux/vmciKernelIf.c (+20 lines)
Lines 1835-1841 VMCIReleasePages(struct page **pages, / Link Here
1835
      if (dirty) {
1835
      if (dirty) {
1836
         set_page_dirty(pages[i]);
1836
         set_page_dirty(pages[i]);
1837
      }
1837
      }
1838
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
1839
      put_page(pages[i]);
1840
#else
1838
      page_cache_release(pages[i]);
1841
      page_cache_release(pages[i]);
1842
#endif
1839
      pages[i] = NULL;
1843
      pages[i] = NULL;
1840
   }
1844
   }
1841
}
1845
}
Lines 2049-2054 VMCIHost_GetUserMemory(VA64 produceUVA, Link Here
2049
   int err = VMCI_SUCCESS;
2053
   int err = VMCI_SUCCESS;
2050
2054
2051
   down_write(&current->mm->mmap_sem);
2055
   down_write(&current->mm->mmap_sem);
2056
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
2057
   retval = get_user_pages((VA)produceUVA,
2058
                           produceQ->kernelIf->numPages,
2059
                           1, 0,
2060
                           produceQ->kernelIf->u.h.headerPage,
2061
                           NULL);
2062
#else
2052
   retval = get_user_pages(current,
2063
   retval = get_user_pages(current,
2053
                           current->mm,
2064
                           current->mm,
2054
                           (VA)produceUVA,
2065
                           (VA)produceUVA,
Lines 2056-2061 VMCIHost_GetUserMemory(VA64 produceUVA, Link Here
2056
                           1, 0,
2067
                           1, 0,
2057
                           produceQ->kernelIf->u.h.headerPage,
2068
                           produceQ->kernelIf->u.h.headerPage,
2058
                           NULL);
2069
                           NULL);
2070
#endif
2059
   if (retval < produceQ->kernelIf->numPages) {
2071
   if (retval < produceQ->kernelIf->numPages) {
2060
      Log("get_user_pages(produce) failed (retval=%d)\n", retval);
2072
      Log("get_user_pages(produce) failed (retval=%d)\n", retval);
2061
      VMCIReleasePages(produceQ->kernelIf->u.h.headerPage, retval, FALSE);
2073
      VMCIReleasePages(produceQ->kernelIf->u.h.headerPage, retval, FALSE);
Lines 2063-2068 VMCIHost_GetUserMemory(VA64 produceUVA, Link Here
2063
      goto out;
2075
      goto out;
2064
   }
2076
   }
2065
2077
2078
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
2079
   retval = get_user_pages((VA)consumeUVA,
2080
                           consumeQ->kernelIf->numPages,
2081
                           1, 0,
2082
                           consumeQ->kernelIf->u.h.headerPage,
2083
                           NULL);
2084
#else
2066
   retval = get_user_pages(current,
2085
   retval = get_user_pages(current,
2067
                           current->mm,
2086
                           current->mm,
2068
                           (VA)consumeUVA,
2087
                           (VA)consumeUVA,
Lines 2070-2075 VMCIHost_GetUserMemory(VA64 produceUVA, Link Here
2070
                           1, 0,
2089
                           1, 0,
2071
                           consumeQ->kernelIf->u.h.headerPage,
2090
                           consumeQ->kernelIf->u.h.headerPage,
2072
                           NULL);
2091
                           NULL);
2092
#endif
2073
   if (retval < consumeQ->kernelIf->numPages) {
2093
   if (retval < consumeQ->kernelIf->numPages) {
2074
      Log("get_user_pages(consume) failed (retval=%d)\n", retval);
2094
      Log("get_user_pages(consume) failed (retval=%d)\n", retval);
2075
      VMCIReleasePages(consumeQ->kernelIf->u.h.headerPage, retval, FALSE);
2095
      VMCIReleasePages(consumeQ->kernelIf->u.h.headerPage, retval, FALSE);
(-)b/vmmon-only/linux/hostif.c (+5 lines)
Lines 1163-1170 HostIFGetUserPages(void *uvAddr, Link Here
1163
   int retval;
1163
   int retval;
1164
1164
1165
   down_read(&current->mm->mmap_sem);
1165
   down_read(&current->mm->mmap_sem);
1166
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
1167
   retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages,
1168
                           NULL);
1169
#else
1166
   retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
1170
   retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
1167
                           numPages, 0, 0, ppages, NULL);
1171
                           numPages, 0, 0, ppages, NULL);
1172
#endif
1168
   up_read(&current->mm->mmap_sem);
1173
   up_read(&current->mm->mmap_sem);
1169
1174
1170
   return retval != numPages;
1175
   return retval != numPages;
(-)b/vmnet-only/userif.c (+4 lines)
Lines 113-120 UserifLockPage(VA addr) // IN Link Here
113
   int retval;
113
   int retval;
114
114
115
   down_read(&current->mm->mmap_sem);
115
   down_read(&current->mm->mmap_sem);
116
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 99)
117
   retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
118
#else
116
   retval = get_user_pages(current, current->mm, addr,
119
   retval = get_user_pages(current, current->mm, addr,
117
			   1, 1, 0, &page, NULL);
120
			   1, 1, 0, &page, NULL);
121
#endif
118
   up_read(&current->mm->mmap_sem);
122
   up_read(&current->mm->mmap_sem);
119
123
120
   if (retval != 1) {
124
   if (retval != 1) {

Return to bug 583244