diff options
author | Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | 2024-03-01 11:07:23 -0500 |
---|---|---|
committer | Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | 2024-03-01 20:32:11 -0500 |
commit | bb1552e22bbfc2e3fee6674d2457d9407b83028b (patch) | |
tree | b66628f66e7c2064544862f8a3551d6a2fae5c70 | |
parent | c7ec94e0604b81dc6b0832f9c67876961cfcefe2 (diff) | |
download | librseq-bb1552e22bbfc2e3fee6674d2457d9407b83028b.tar.gz |
Skip first pool
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: If07b9bbe91fa24b805d7943d4c0cb448cc89c210
-rw-r--r-- | src/rseq-percpu-alloc.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/rseq-percpu-alloc.c b/src/rseq-percpu-alloc.c index 2476e11..539c14b 100644 --- a/src/rseq-percpu-alloc.c +++ b/src/rseq-percpu-alloc.c @@ -60,6 +60,12 @@ # define POOL_SET_MIN_ENTRY 2 /* Smallest item_len=4 */ #endif +/* + * Skip pool index 0 to ensure allocated entries at index 0 do not match + * a NULL pointer. + */ +#define FIRST_POOL 1 + struct free_list_node; struct free_list_node { @@ -208,7 +214,7 @@ struct rseq_percpu_pool *rseq_percpu_pool_create(size_t item_len, pthread_mutex_lock(&pool_lock); /* Linear scan in array of pools to find empty spot. */ - for (i = 0; i < MAX_NR_POOLS; i++) { + for (i = FIRST_POOL; i < MAX_NR_POOLS; i++) { pool = &rseq_percpu_pool[i]; if (!pool->base) goto found_empty; |