vec_validate_aligned (pm->lookup_table, vec_len (pm->pages) *
elts_per_page - 1, CLIB_CACHE_LINE_BYTES);
- p = first * elts_per_page;
+ p = (uword) first *elts_per_page;
if (pm->flags & CLIB_PMALLOC_F_NO_PAGEMAP)
{
while (p < (uword) elts_per_page * count)
pp->n_free_blocks = 1 << (pm->def_log2_page_sz - PMALLOC_LOG2_BLOCK_SZ);
pp->index = pp - pm->pages;
pp->arena_index = a->index;
+ pp->pa = (uword) va + (1 << pm->def_log2_page_sz) * i;
vec_add1 (a->page_indices, pp->index);
a->n_pages++;
}
return 0;
}
- return pm->base + (pp->index << pm->def_log2_page_sz);
+ return pm->base + ((uword) pp->index << pm->def_log2_page_sz);
}
static inline void *