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