[dpdk-dev] [PATCH v1] net/ice: fix DCF Rx segmentation fault

Haiyue Wang haiyue.wang at intel.com
Wed Oct 28 17:55:45 CET 2020


The initialization for the handler of Rx FlexiMD fields extraction into
mbuf is missed, it will cause segmentation fault (core dumped).

Fixes: 7a340b0b4e03 ("net/ice: refactor Rx FlexiMD handling")

Reported-by: Alvin Zhang <alvinx.zhang at intel.com>
Signed-off-by: Haiyue Wang <haiyue.wang at intel.com>
---
 drivers/net/ice/ice_dcf.c  | 1 +
 drivers/net/ice/ice_rxtx.c | 2 +-
 drivers/net/ice/ice_rxtx.h | 2 ++
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c
index d20e2b3f48..44dbd3bb84 100644
--- a/drivers/net/ice/ice_dcf.c
+++ b/drivers/net/ice/ice_dcf.c
@@ -899,6 +899,7 @@ ice_dcf_configure_queues(struct ice_dcf_hw *hw)
 			return -EINVAL;
 		}
 #endif
+		ice_select_rxd_to_pkt_fields_handler(rxq[i], vc_qp->rxq.rxdid);
 	}
 
 	memset(&args, 0, sizeof(args));
diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index f6291894cd..860ffb7f67 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -148,7 +148,7 @@ ice_rxd_to_pkt_fields_by_comms_aux_v2(struct ice_rx_queue *rxq,
 #endif
 }
 
-static void
+void
 ice_select_rxd_to_pkt_fields_handler(struct ice_rx_queue *rxq, uint32_t rxdid)
 {
 	switch (rxdid) {
diff --git a/drivers/net/ice/ice_rxtx.h b/drivers/net/ice/ice_rxtx.h
index 23409d479a..6b16716063 100644
--- a/drivers/net/ice/ice_rxtx.h
+++ b/drivers/net/ice/ice_rxtx.h
@@ -234,6 +234,8 @@ int ice_rx_descriptor_status(void *rx_queue, uint16_t offset);
 int ice_tx_descriptor_status(void *tx_queue, uint16_t offset);
 void ice_set_default_ptype_table(struct rte_eth_dev *dev);
 const uint32_t *ice_dev_supported_ptypes_get(struct rte_eth_dev *dev);
+void ice_select_rxd_to_pkt_fields_handler(struct ice_rx_queue *rxq,
+					  uint32_t rxdid);
 
 int ice_rx_vec_dev_check(struct rte_eth_dev *dev);
 int ice_tx_vec_dev_check(struct rte_eth_dev *dev);
-- 
2.29.0



More information about the dev mailing list