patch 'net/mlx5: fix flex item availability' has been queued to stable release 21.11.1

Kevin Traynor ktraynor at redhat.com
Mon Mar 21 18:02:54 CET 2022


Hi,

On 10/03/2022 12:11, Kevin Traynor wrote:
> Hi,
> 
> FYI, your patch has been queued to stable release 21.11.1
> 

This patch seems to be causing a build failure [0] in the CI [1] with 
meson on Windows. Probably there is some piece of a dependent patch that 
is needed.

Can you take a look? thanks.

[0]
[531/617] Compiling C object 
drivers/a715181@@tmp_rte_net_mlx5 at sta/net_mlx5_mlx5_flow.c.obj.
FAILED: drivers/a715181@@tmp_rte_net_mlx5 at sta/net_mlx5_mlx5_flow.c.obj
clang @drivers/a715181@@tmp_rte_net_mlx5 at sta/net_mlx5_mlx5_flow.c.obj.rsp
../drivers/net/mlx5/mlx5_flow.c:9867:23: error: incomplete definition of 
type 'struct rte_pci_device'
         switch (priv->pci_dev->id.device_id) {
                 ~~~~~~~~~~~~~^
..\drivers\net/mlx5/mlx5.h:154:9: note: forward declaration of 'struct 
rte_pci_device'
         struct rte_pci_device *pci_dev; /**< Backend PCI device. */
                ^
1 error generated.

[1] https://lab.dpdk.org/results/dashboard/tarballs/19198/#env-27

> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 03/14/22. So please
> shout if anyone has objections.
> 
> Also note that after the patch there's a diff of the upstream commit vs the
> patch applied to the branch. This will indicate if there was any rebasing
> needed to apply to the stable branch. If there were code changes for rebasing
> (ie: not only metadata diffs), please double check that the rebase was
> correctly done.
> 
> Queued patches are on a temporary branch at:
> https://github.com/kevintraynor/dpdk-stable
> 
> This queued commit can be viewed at:
> https://github.com/kevintraynor/dpdk-stable/commit/48fe9efaf2fb974e3f805eb7c54440ec3818a4b6
> 
> Thanks.
> 
> Kevin
> 
> ---
>  From 48fe9efaf2fb974e3f805eb7c54440ec3818a4b6 Mon Sep 17 00:00:00 2001
> From: Gregory Etelson <getelson at nvidia.com>
> Date: Wed, 2 Mar 2022 13:06:42 +0200
> Subject: [PATCH] net/mlx5: fix flex item availability
> 
> [ upstream commit 71adf25dbfb3a60731bd922342cc0f171714db81 ]
> 
> Flex item availability is restricted to BlueField-2 and BlueField-3
> PF ports.
> 
> The patch validates port type compliance before proceeding to
> flex item creation.
> 
> Fixes: db25cadc0887 ("net/mlx5: add flex item operations")
> 
> Signed-off-by: Gregory Etelson <getelson at nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
> ---
>   drivers/common/mlx5/linux/mlx5_common_os.h |  1 +
>   drivers/net/mlx5/mlx5_flow.c               | 17 +++++++++++++++++
>   2 files changed, 18 insertions(+)
> 
> diff --git a/drivers/common/mlx5/linux/mlx5_common_os.h b/drivers/common/mlx5/linux/mlx5_common_os.h
> index 83066e752d..2e4ac09bbf 100644
> --- a/drivers/common/mlx5/linux/mlx5_common_os.h
> +++ b/drivers/common/mlx5/linux/mlx5_common_os.h
> @@ -10,4 +10,5 @@
>   
>   #include <rte_pci.h>
> +#include <rte_bus_pci.h>
>   #include <rte_debug.h>
>   #include <rte_atomic.h>
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> index 5b36cfa042..41a648ff3f 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -9854,8 +9854,25 @@ mlx5_flow_flex_item_create(struct rte_eth_dev *dev,
>   {
>   	static const char err_msg[] = "flex item creation unsupported";
> +	struct mlx5_priv *priv = dev->data->dev_private;
>   	struct rte_flow_attr attr = { .transfer = 0 };
>   	const struct mlx5_flow_driver_ops *fops =
>   			flow_get_drv_ops(flow_get_drv_type(dev, &attr));
>   
> +	if (!priv->pci_dev) {
> +		rte_flow_error_set(error, ENOTSUP,
> +				   RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
> +				   "create flex item on PF only");
> +		return NULL;
> +	}
> +	switch (priv->pci_dev->id.device_id) {
> +	case PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF:
> +	case PCI_DEVICE_ID_MELLANOX_CONNECTX7BF:
> +		break;
> +	default:
> +		rte_flow_error_set(error, ENOTSUP,
> +				   RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
> +				   "flex item available on BlueField ports only");
> +		return NULL;
> +	}
>   	if (!fops->item_create) {
>   		DRV_LOG(ERR, "port %u %s.", dev->data->port_id, err_msg);



More information about the stable mailing list