X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=urcu-bp.c;h=ac8c6806e1008e5314f61e013b31e6b454e3fb69;hb=refs%2Fheads%2Fstable-0.8;hp=9d6713ef1b53aae08fae9cc975b307b040621701;hpb=3c29ca5d56988c3a10ba289a1129eadb4bf6b3ee;p=userspace-rcu.git diff --git a/urcu-bp.c b/urcu-bp.c index 9d6713e..ac8c680 100644 --- a/urcu-bp.c +++ b/urcu-bp.c @@ -355,7 +355,8 @@ void expand_arena(struct registry_arena *arena) sizeof(struct registry_chunk) + sizeof(struct rcu_reader)); new_chunk_len = ARENA_INIT_ALLOC; - new_chunk = mmap(NULL, new_chunk_len, + new_chunk = (struct registry_chunk *) mmap(NULL, + new_chunk_len, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); @@ -389,7 +390,8 @@ void expand_arena(struct registry_arena *arena) } /* Remap did not succeed, we need to add a new chunk. */ - new_chunk = mmap(NULL, new_chunk_len, + new_chunk = (struct registry_chunk *) mmap(NULL, + new_chunk_len, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); @@ -587,9 +589,10 @@ void _rcu_bp_exit(void) cds_list_for_each_entry_safe(chunk, tmp, ®istry_arena.chunk_list, node) { - munmap(chunk, chunk->data_len + munmap((void *) chunk, chunk->data_len + sizeof(struct registry_chunk)); } + CDS_INIT_LIST_HEAD(®istry_arena.chunk_list); ret = pthread_key_delete(urcu_bp_key); if (ret) abort();