> Directly call "_rte_ring_do_enqueue_elem" function can result in the > process skips the "switch" order and cannot call the APIs of RTS and HTS > mode in "rte_ring_enqueue_bulk_elem" function. > > To fix it, remove the unnecessary function and make > "_rte_ring_do_enqueue_elem" consistent with "_rte_ring_do_dequeue_elem". > > Fixes: e6ba4731c0f3 ("ring: introduce RTS ring mode") > Cc: sta...@dpdk.org > > Signed-off-by: Feifei Wang <feifei.wa...@arm.com> > Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com> > --- > lib/librte_ring/rte_ring_elem.h | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/lib/librte_ring/rte_ring_elem.h b/lib/librte_ring/rte_ring_elem.h > index a5a4c46f9..469aee7da 100644 > --- a/lib/librte_ring/rte_ring_elem.h > +++ b/lib/librte_ring/rte_ring_elem.h > @@ -578,9 +578,6 @@ static __rte_always_inline unsigned int > rte_ring_enqueue_bulk_elem(struct rte_ring *r, const void *obj_table, > unsigned int esize, unsigned int n, unsigned int *free_space) > { > - return __rte_ring_do_enqueue_elem(r, obj_table, esize, n, > - RTE_RING_QUEUE_FIXED, r->prod.sync_type, free_space); > - > switch (r->prod.sync_type) { > case RTE_RING_SYNC_MT: > return rte_ring_mp_enqueue_bulk_elem(r, obj_table, esize, n, > --
Ouch, that was a nasty one from me. Thanks for catching and fixing. Acked-by: Konstantin Ananyev <konstantin.anan...@intel.com> > 2.17.1