[v1] net/ice: fix DCF Rx segmentation fault
Checks
Commit Message
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@intel.com>
Signed-off-by: Haiyue Wang <haiyue.wang@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(-)
Comments
> -----Original Message-----
> From: Wang, Haiyue <haiyue.wang@intel.com>
> Sent: Thursday, October 29, 2020 12:56 AM
> To: dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Wang, Haiyue
> <haiyue.wang@intel.com>; Zhang, AlvinX <alvinx.zhang@intel.com>; Yang,
> Qiming <qiming.yang@intel.com>; Guo, Jia <jia.guo@intel.com>
> Subject: [PATCH v1] net/ice: fix DCF Rx segmentation fault
>
> 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")
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Applied to dpdk-next-net-intel.
Thanks
Qi
@@ -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));
@@ -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) {
@@ -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);