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>
This commit is contained in:

committed by
Florin Coras

parent
a9fe20f4b8
commit
eb63caea2a
@ -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);
|
||||
|
||||
|
@ -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 *
|
||||
|
Reference in New Issue
Block a user