X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Focteontx2%2Fotx2_tx.h;h=a97b16067783189daeeeb594038469c068c84870;hb=6a11a1eac0b6dcd52580eef99cf6f09e3361cc3b;hp=d6ea3b4874a2d0614c2420b458546ae91fb93838;hpb=ce8628c66a22f1222693075d9d474bd4b96f9c2c;p=dpdk.git diff --git a/drivers/net/octeontx2/otx2_tx.h b/drivers/net/octeontx2/otx2_tx.h index d6ea3b4874..a97b160677 100644 --- a/drivers/net/octeontx2/otx2_tx.h +++ b/drivers/net/octeontx2/otx2_tx.h @@ -440,13 +440,17 @@ otx2_nix_prepare_mseg(struct rte_mbuf *m, uint64_t *cmd, const uint16_t flags) sg_u = sg_u | ((uint64_t)m->data_len << (i << 4)); *slist = rte_mbuf_data_iova(m); /* Set invert df if buffer is not to be freed by H/W */ - if (flags & NIX_TX_OFFLOAD_MBUF_NOFF_F) + if (flags & NIX_TX_OFFLOAD_MBUF_NOFF_F) { sg_u |= (otx2_nix_prefree_seg(m) << (i + 55)); + /* Commit changes to mbuf */ + rte_io_wmb(); + } /* Mark mempool object as "put" since it is freed by NIX */ - if (!(sg_u & (1ULL << (i + 55)))) { - m->next = NULL; +#ifdef RTE_LIBRTE_MEMPOOL_DEBUG + if (!(sg_u & (1ULL << (i + 55)))) __mempool_check_cookies(m->pool, (void **)&m, 1, 0); - } + rte_io_wmb(); +#endif slist++; i++; nb_segs--;