Hi, > -----Original Message----- > From: Bing Zhao <bi...@mellanox.com> > Sent: Friday, April 17, 2020 10:31 AM > To: Ori Kam <or...@mellanox.com>; Slava Ovsiienko > <viachesl...@mellanox.com>; Raslan Darawsheh <rasl...@mellanox.com> > Cc: Matan Azrad <ma...@mellanox.com>; dev@dpdk.org > Subject: [PATCH] net/mlx5: fix the empty flow error structure > > The output flow error parameter is used to indicate the detailed > reason of the failure when calling a rte_flow_* interface. Even > though sometimes the application will not check it or use it, the PMD > must fill it in the failure branch before returning. Or else, some > dirty value in the stack, heap will be accessed as a pointer and then > cause a crash. > In this case, when a port is stopped, it is not allowed to insert a > flow from application. The detailed error information should be > filled. If the application needs to check the detailed error reason, > it will get the information but not result in any crash. > > Fixes: 6ec024870715 ("net/mlx5: check device stat before creating flow") Fixed Fixes line sha > > Signed-off-by: Bing Zhao <bi...@mellanox.com> > Acked-by: Ori Kam <or...@mellanox.com> > --- > drivers/net/mlx5/mlx5_flow.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index c529aa3..6a5522c 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -4490,9 +4490,12 @@ struct rte_flow * > * are not affected. > */ > if (unlikely(!dev->data->dev_started)) { > - rte_errno = ENODEV; > DRV_LOG(DEBUG, "port %u is not started when " > "inserting a flow", dev->data->port_id); > + rte_flow_error_set(error, ENODEV, > + RTE_FLOW_ERROR_TYPE_UNSPECIFIED, > + NULL, > + "port not started"); > return NULL; > } > return (void *)(uintptr_t)flow_list_create(dev, &priv->flows, > -- > 1.8.3.1
Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh