diff options
author | Damjan Marion <damarion@cisco.com> | 2022-02-25 00:19:26 +0100 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2022-03-14 17:55:19 +0000 |
commit | eb63caea2aacb60e05f956f0720d95267398e3ff (patch) | |
tree | a7f96a8d72fdc82e10a743f66ad47ed146623d4d /src | |
parent | a9fe20f4b8f7a9bd65cc8ee1b6a0204af7fc3627 (diff) |
vppinfra: don't account vec_header_t size twice in the pool header
Type: fix
Change-Id: I298d2a5067f7949002e6c010f892553f1eb9f477
Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/vppinfra/pool.c | 5 | ||||
-rw-r--r-- | src/vppinfra/pool.h | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/vppinfra/pool.c b/src/vppinfra/pool.c index c2f587a93f4..25398455402 100644 --- a/src/vppinfra/pool.c +++ b/src/vppinfra/pool.c @@ -55,7 +55,8 @@ _pool_init_fixed (void **pool_ptr, u32 elt_size, u32 max_elts) ASSERT (elt_size); ASSERT (max_elts); - vector_size = pool_aligned_header_bytes + (u64) elt_size *max_elts; + vector_size = + vec_header_bytes (pool_aligned_header_bytes) + (u64) elt_size * max_elts; free_index_size = vec_header_bytes (0) + sizeof (u32) * max_elts; /* Round up to a cache line boundary */ @@ -85,7 +86,7 @@ _pool_init_fixed (void **pool_ptr, u32 elt_size, u32 max_elts) /* First comes the pool header */ fh = (pool_header_t *) mmap_base; /* Find the user vector pointer */ - v = (u8 *) (mmap_base + pool_aligned_header_bytes); + v = (u8 *) (mmap_base + vec_header_bytes (pool_aligned_header_bytes)); /* Finally, the vector header */ vh = _vec_find (v); diff --git a/src/vppinfra/pool.h b/src/vppinfra/pool.h index 9dd05a382ab..284e23d8e0a 100644 --- a/src/vppinfra/pool.h +++ b/src/vppinfra/pool.h @@ -68,8 +68,8 @@ typedef struct } pool_header_t; /** Align pool header so that pointers are naturally aligned. */ -#define pool_aligned_header_bytes \ - vec_aligned_header_bytes (sizeof (pool_header_t), sizeof (void *)) +#define pool_aligned_header_bytes \ + round_pow2 (sizeof (pool_header_t), sizeof (void *)) /** Get pool header from user pool pointer */ always_inline pool_header_t * |