aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vlib/buffer.c2
-rwxr-xr-xsrc/vlib/physmem.c4
-rw-r--r--src/vppinfra/pmalloc.c5
3 files changed, 6 insertions, 5 deletions
diff --git a/src/vlib/buffer.c b/src/vlib/buffer.c
index 2f15e6530da..22cf7999be7 100644
--- a/src/vlib/buffer.c
+++ b/src/vlib/buffer.c
@@ -860,7 +860,7 @@ vlib_buffer_register_physmem_map (vlib_main_t * vm, u32 physmem_map_index)
vlib_buffer_pool_t *p;
vlib_physmem_map_t *m = vlib_physmem_get_map (vm, physmem_map_index);
uword start = pointer_to_uword (m->base);
- uword size = m->n_pages << m->log2_page_size;
+ uword size = (uword) m->n_pages << m->log2_page_size;
if (bm->buffer_mem_size == 0)
{
diff --git a/src/vlib/physmem.c b/src/vlib/physmem.c
index e2d88922f56..2599bce944d 100755
--- a/src/vlib/physmem.c
+++ b/src/vlib/physmem.c
@@ -39,7 +39,7 @@ vlib_physmem_shared_map_create (vlib_main_t * vm, char *name, uword size,
clib_pmalloc_arena_t *a;
clib_error_t *error = 0;
void *va;
- int i;
+ uword i;
va = clib_pmalloc_create_shared_arena (pm, name, size, numa_node);
@@ -87,7 +87,7 @@ vlib_physmem_init (vlib_main_t * vm)
/* check if pagemap is accessible */
pt = clib_mem_vm_get_paddr (&pt, min_log2 (sysconf (_SC_PAGESIZE)), 1);
- if (pt[0])
+ if (pt && pt[0])
vpm->flags |= VLIB_PHYSMEM_MAIN_F_HAVE_PAGEMAP;
vec_free (pt);
diff --git a/src/vppinfra/pmalloc.c b/src/vppinfra/pmalloc.c
index d354cce8a7d..0f9df9c6641 100644
--- a/src/vppinfra/pmalloc.c
+++ b/src/vppinfra/pmalloc.c
@@ -279,7 +279,7 @@ pmalloc_map_pages (clib_pmalloc_main_t * pm, clib_pmalloc_arena_t * a,
goto error;
}
- memset (va, 0, n_pages << pm->log2_page_sz);
+ clib_memset (va, 0, n_pages << pm->log2_page_sz);
sys_page_size = sysconf (_SC_PAGESIZE);
pagemap_fd = open ((char *) "/proc/self/pagemap", O_RDONLY);
@@ -324,7 +324,8 @@ clib_pmalloc_create_shared_arena (clib_pmalloc_main_t * pm, char *name,
{
clib_pmalloc_arena_t *a;
clib_pmalloc_page_t *pp;
- u32 n_pages = round_pow2 (size, 1 << pm->log2_page_sz) >> pm->log2_page_sz;
+ u32 n_pages = round_pow2 (size, 1ULL << pm->log2_page_sz) >>
+ pm->log2_page_sz;
if (n_pages + vec_len (pm->pages) > pm->max_pages)
return 0;