From 65784c1602c7c8171effd00384f65f546d93a13b Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Wed, 4 Jul 2018 04:17:41 -0700 Subject: svm: add unidirectional message queue Meant for single reader/writer message exchanges. Supports multiple message rings. Change-Id: I925de9a6ae19226c5c39a63caff76424ed123a13 Signed-off-by: Florin Coras --- src/svm/ssvm.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/svm/ssvm.c') diff --git a/src/svm/ssvm.c b/src/svm/ssvm.c index 04e0efa3d62..dfb68c039ad 100644 --- a/src/svm/ssvm.c +++ b/src/svm/ssvm.c @@ -29,7 +29,6 @@ int ssvm_master_init_shm (ssvm_private_t * ssvm) { int ssvm_fd, mh_flags = MHEAP_FLAG_DISABLE_VM | MHEAP_FLAG_THREAD_SAFE; - svm_main_region_t *smr = svm_get_root_rp ()->data_base; clib_mem_vm_map_t mapa = { 0 }; u8 junk = 0, *ssvm_filename; ssvm_shared_header_t *sh; @@ -56,8 +55,13 @@ ssvm_master_init_shm (ssvm_private_t * ssvm) if (fchmod (ssvm_fd, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP) < 0) clib_unix_warning ("ssvm segment chmod"); - if (fchown (ssvm_fd, smr->uid, smr->gid) < 0) - clib_unix_warning ("ssvm segment chown"); + if (svm_get_root_rp ()) + { + /* TODO: is this really needed? */ + svm_main_region_t *smr = svm_get_root_rp ()->data_base; + if (fchown (ssvm_fd, smr->uid, smr->gid) < 0) + clib_unix_warning ("ssvm segment chown"); + } if (lseek (ssvm_fd, ssvm->ssvm_size, SEEK_SET) < 0) { -- cgit 1.2.3-korg