[PATCH] net/iavf: fix access to null value

Mingjin Ye mingjinx.ye at intel.com
Wed Jan 24 03:05:55 CET 2024


The "vsi" may be null, so it needs to be used after checking.

Fixes: ab28aad9c24f ("net/iavf: fix Rx Tx burst in multi-process")
Cc: stable at dpdk.org

Signed-off-by: Mingjin Ye <mingjinx.ye at intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 5ba4527ae3..8992e728cd 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -3781,12 +3781,13 @@ iavf_recv_pkts_no_poll(void *rx_queue, struct rte_mbuf **rx_pkts,
 				uint16_t nb_pkts)
 {
 	struct iavf_rx_queue *rxq = rx_queue;
-	enum iavf_rx_burst_type rx_burst_type =
-		rxq->vsi->adapter->rx_burst_type;
+	enum iavf_rx_burst_type rx_burst_type;
 
 	if (!rxq->vsi || rxq->vsi->adapter->no_poll)
 		return 0;
 
+	rx_burst_type = rxq->vsi->adapter->rx_burst_type;
+
 	return iavf_rx_pkt_burst_ops[rx_burst_type](rx_queue,
 								rx_pkts, nb_pkts);
 }
@@ -3796,12 +3797,13 @@ iavf_xmit_pkts_no_poll(void *tx_queue, struct rte_mbuf **tx_pkts,
 				uint16_t nb_pkts)
 {
 	struct iavf_tx_queue *txq = tx_queue;
-	enum iavf_tx_burst_type tx_burst_type =
-		txq->vsi->adapter->tx_burst_type;
+	enum iavf_tx_burst_type tx_burst_type;
 
 	if (!txq->vsi || txq->vsi->adapter->no_poll)
 		return 0;
 
+	tx_burst_type = txq->vsi->adapter->tx_burst_type;
+
 	return iavf_tx_pkt_burst_ops[tx_burst_type](tx_queue,
 								tx_pkts, nb_pkts);
 }
-- 
2.25.1



More information about the dev mailing list