net/cnxk: fix missing FC wait for outbound vector mode

Fix missing FC wait for outbound path in vector mode.
Currently only poll mode has it.

Fixes: 358d02d20a ("net/cnxk: support flow control for outbound inline")
Cc: stable@dpdk.org

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
This commit is contained in:
Nithin Dabilpuram 2022-09-12 18:43:59 +05:30 committed by Jerin Jacob
parent 37da585095
commit 8c8568bc0b

View File

@ -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);
}