Fix missing fc wait for outbound path in vector mode. Currently only poll mode has it.
Fixes: 358d02d20a2f ("net/cnxk: support flow control for outbound inline") Cc: ndabilpu...@marvell.com Signed-off-by: Nithin Dabilpuram <ndabilpu...@marvell.com> --- drivers/net/cnxk/cn10k_tx.h | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/net/cnxk/cn10k_tx.h b/drivers/net/cnxk/cn10k_tx.h index 8056510..07c88a9 100644 --- a/drivers/net/cnxk/cn10k_tx.h +++ b/drivers/net/cnxk/cn10k_tx.h @@ -1049,9 +1049,13 @@ cn10k_nix_xmit_pkts(void *tx_queue, uint64_t *ws, struct rte_mbuf **tx_pkts, /* Submit CPT instructions if any */ if (flags & NIX_TX_OFFLOAD_SECURITY_F) { + uint16_t sec_pkts = ((c_lnum << 1) + c_loff); + /* Reduce pkts to be sent to CPT */ - burst -= ((c_lnum << 1) + c_loff); - cn10k_nix_sec_fc_wait(txq, (c_lnum << 1) + c_loff); + burst -= sec_pkts; + if (flags & NIX_TX_VWQE_F) + cn10k_nix_vwqe_wait_fc(txq, sec_pkts); + cn10k_nix_sec_fc_wait(txq, sec_pkts); cn10k_nix_sec_steorl(c_io_addr, c_lmt_id, c_lnum, c_loff, c_shft); } @@ -1199,9 +1203,13 @@ cn10k_nix_xmit_pkts_mseg(void *tx_queue, uint64_t *ws, /* Submit CPT instructions if any */ if (flags & NIX_TX_OFFLOAD_SECURITY_F) { + uint16_t sec_pkts = ((c_lnum << 1) + c_loff); + /* Reduce pkts to be sent to CPT */ - burst -= ((c_lnum << 1) + c_loff); - cn10k_nix_sec_fc_wait(txq, (c_lnum << 1) + c_loff); + burst -= sec_pkts; + if (flags & NIX_TX_VWQE_F) + cn10k_nix_vwqe_wait_fc(txq, sec_pkts); + cn10k_nix_sec_fc_wait(txq, sec_pkts); cn10k_nix_sec_steorl(c_io_addr, c_lmt_id, c_lnum, c_loff, c_shft); } @@ -2753,7 +2761,11 @@ cn10k_nix_xmit_pkts_vector(void *tx_queue, uint64_t *ws, /* Submit CPT instructions if any */ if (flags & NIX_TX_OFFLOAD_SECURITY_F) { - cn10k_nix_sec_fc_wait(txq, (c_lnum << 1) + c_loff); + uint16_t sec_pkts = (c_lnum << 1) + c_loff; + + if (flags & NIX_TX_VWQE_F) + cn10k_nix_vwqe_wait_fc(txq, sec_pkts); + cn10k_nix_sec_fc_wait(txq, sec_pkts); cn10k_nix_sec_steorl(c_io_addr, c_lmt_id, c_lnum, c_loff, c_shft); } -- 2.8.4