net/cnxk: fix multi-segment extraction in vwqe path
Fix multi-seg extraction in vwqe path to avoid updating mbuf[]
array until it is used via cq0 path.
Fixes: 7fbbc981d5
("event/cnxk: support vectorized Rx event fast path")
Cc: stable@dpdk.org
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
This commit is contained in:
parent
34b46320f4
commit
e2819fea94
@ -1673,10 +1673,6 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,
|
||||
vst1q_u64((uint64_t *)mbuf2->rearm_data, rearm2);
|
||||
vst1q_u64((uint64_t *)mbuf3->rearm_data, rearm3);
|
||||
|
||||
/* Store the mbufs to rx_pkts */
|
||||
vst1q_u64((uint64_t *)&mbufs[packets], mbuf01);
|
||||
vst1q_u64((uint64_t *)&mbufs[packets + 2], mbuf23);
|
||||
|
||||
if (flags & NIX_RX_MULTI_SEG_F) {
|
||||
/* Multi segment is enable build mseg list for
|
||||
* individual mbufs in scalar mode.
|
||||
@ -1695,6 +1691,10 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,
|
||||
mbuf3, mbuf_initializer, flags);
|
||||
}
|
||||
|
||||
/* Store the mbufs to rx_pkts */
|
||||
vst1q_u64((uint64_t *)&mbufs[packets], mbuf01);
|
||||
vst1q_u64((uint64_t *)&mbufs[packets + 2], mbuf23);
|
||||
|
||||
/* Mark mempool obj as "get" as it is alloc'ed by NIX */
|
||||
RTE_MEMPOOL_CHECK_COOKIES(mbuf0->pool, (void **)&mbuf0, 1, 1);
|
||||
RTE_MEMPOOL_CHECK_COOKIES(mbuf1->pool, (void **)&mbuf1, 1, 1);
|
||||
|
Loading…
Reference in New Issue
Block a user