Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
svm: fix byte accounting when allocating fifo header
[vpp.git]
/
src
/
svm
/
ssvm.c
diff --git
a/src/svm/ssvm.c
b/src/svm/ssvm.c
index
3e45175
..
feba7f9
100644
(file)
--- a/
src/svm/ssvm.c
+++ b/
src/svm/ssvm.c
@@
-213,7
+213,7
@@
ssvm_delete_shm (ssvm_private_t * ssvm)
vec_free (fn);
vec_free (ssvm->name);
vec_free (fn);
vec_free (ssvm->name);
- munmap ((void *) ssvm->
requested_va
, ssvm->ssvm_size);
+ munmap ((void *) ssvm->
sh
, ssvm->ssvm_size);
}
/**
}
/**
@@
-352,8
+352,8
@@
ssvm_master_init_private (ssvm_private_t * ssvm)
u32 rnd_size = 0;
u8 *heap;
u32 rnd_size = 0;
u8 *heap;
- rnd_size =
(ssvm->ssvm_size + (pagesize - 1)) & ~(pagesize - 1
);
- rnd_size
= clib_min (rnd_size, ((u64) 1 << 32) - pagesize
);
+ rnd_size =
clib_max (ssvm->ssvm_size + (pagesize - 1), ssvm->ssvm_size
);
+ rnd_size
&= ~(pagesize - 1
);
#if USE_DLMALLOC == 0
{
#if USE_DLMALLOC == 0
{
@@
-370,6
+370,13
@@
ssvm_master_init_private (ssvm_private_t * ssvm)
}
#else
heap = create_mspace (rnd_size, 1 /* locked */ );
}
#else
heap = create_mspace (rnd_size, 1 /* locked */ );
+ if (heap == 0)
+ {
+ clib_unix_warning ("mheap alloc");
+ return -1;
+ }
+
+ mspace_disable_expand (heap);
#endif
ssvm->ssvm_size = rnd_size;
#endif
ssvm->ssvm_size = rnd_size;
@@
-385,6
+392,7
@@
ssvm_master_init_private (ssvm_private_t * ssvm)
sh->heap = heap;
sh->ssvm_va = pointer_to_uword (heap);
sh->type = SSVM_SEGMENT_PRIVATE;
sh->heap = heap;
sh->ssvm_va = pointer_to_uword (heap);
sh->type = SSVM_SEGMENT_PRIVATE;
+ sh->name = ssvm->name;
return 0;
}
return 0;
}