mempool/octeontx2: fix shift calculation
Shift is used to generate an 8-bit saturate value from the current
aura used count. The shift value should be derived from the log2 of
block count if it is greater than 256 else the shift should be 0.
Fixes: 7bcc47cbe2
("mempool/octeontx2: add mempool alloc op")
Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
This commit is contained in:
parent
c93f222d45
commit
43d8940495
@ -611,7 +611,8 @@ npa_lf_aura_pool_pair_alloc(struct otx2_npa_lf *lf, const uint32_t block_size,
|
||||
/* Update aura fields */
|
||||
aura->pool_addr = pool_id;/* AF will translate to associated poolctx */
|
||||
aura->ena = 1;
|
||||
aura->shift = __builtin_clz(block_count) - 8;
|
||||
aura->shift = rte_log2_u32(block_count);
|
||||
aura->shift = aura->shift < 8 ? 0 : aura->shift - 8;
|
||||
aura->limit = block_count;
|
||||
aura->pool_caching = 1;
|
||||
aura->err_int_ena = BIT(NPA_AURA_ERR_INT_AURA_ADD_OVER);
|
||||
@ -626,7 +627,8 @@ npa_lf_aura_pool_pair_alloc(struct otx2_npa_lf *lf, const uint32_t block_size,
|
||||
pool->ena = 1;
|
||||
pool->buf_size = block_size / OTX2_ALIGN;
|
||||
pool->stack_max_pages = stack_size;
|
||||
pool->shift = __builtin_clz(block_count) - 8;
|
||||
pool->shift = rte_log2_u32(block_count);
|
||||
pool->shift = pool->shift < 8 ? 0 : pool->shift - 8;
|
||||
pool->ptr_start = 0;
|
||||
pool->ptr_end = ~0;
|
||||
pool->stack_caching = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user