[dpdk-dev] [PATCH v3] net/ice: fix segmentation fault with a wrong package

Ye Xiaolong xiaolong.ye at intel.com
Mon Nov 11 10:06:21 CET 2019


Hi, simei

On 11/07, Simei Su wrote:
>This patch fixes core dump issue when entering safe mode with a
>wrong ice.pkg. In safe mode, rte_flow is not supported and it
>won't initialize any flow engine.
>
>Fixes: 7615a6895009 ("net/ice: rework for generic flow enabling")
>
>Signed-off-by: Simei Su <simei.su at intel.com>
>---
> drivers/net/ice/ice_ethdev.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
>diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
>index d81eb5e..2a28d8e 100644
>--- a/drivers/net/ice/ice_ethdev.c
>+++ b/drivers/net/ice/ice_ethdev.c
>@@ -2164,10 +2164,12 @@ static int ice_parse_devargs(struct rte_eth_dev *dev)
> 	/* get base queue pairs index  in the device */
> 	ice_base_queue_get(pf);
> 
>-	ret = ice_flow_init(ad);
>-	if (ret) {
>-		PMD_INIT_LOG(ERR, "Failed to initialize flow");
>-		return ret;
>+	if (!ad->is_safe_mode) {
>+		ret = ice_flow_init(ad);
>+		if (ret) {
>+			PMD_INIT_LOG(ERR, "Failed to initialize flow");
>+			return ret;
>+		}

Do we need to print out some message indicates that now ice is in safe mode? 

Thanks,
Xiaolong

> 	}
> 
> 	ret = ice_reset_fxp_resource(hw);
>@@ -2311,7 +2313,8 @@ static int ice_parse_devargs(struct rte_eth_dev *dev)
> 
> 	ice_dev_stop(dev);
> 
>-	ice_flow_uninit(ad);
>+	if (!ad->is_safe_mode)
>+		ice_flow_uninit(ad);
> 
> 	/* release all queue resource */
> 	ice_free_queues(dev);
>-- 
>1.8.3.1
>


More information about the dev mailing list