On 29-Apr-20 6:13 PM, Burakov, Anatoly wrote:
@@ -547,10 +531,10 @@ rte_eal_memdevice_init(void)
  int
  rte_mem_lock_page(const void *virt)
  {
-    unsigned long virtual = (unsigned long)virt;
-    int page_size = getpagesize();
-    unsigned long aligned = (virtual & ~(page_size - 1));
-    return mlock((void *)aligned, page_size);
+    uintptr_t virtual = (uintptr_t)virt;
+    int page_size = rte_get_page_size();
+    uintptr_t aligned = (virtual & ~(page_size - 1));

Might as well fix to use macros? e.g.

size_t pagesz = rte_get_page_size();
return rte_mem_lock(RTE_PTR_ALIGN(virt, pagesz), pagesz);

(also, note that rte_get_page_size() returns size_t, not int)

Apologies, this should've been RTE_PTR_ALIGN_FLOOR(virt, pagesz)

--
Thanks,
Anatoly

Reply via email to