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

Kevin Traynor ktraynor at redhat.com
Wed Mar 23 17:03:46 CET 2022


On 21/03/2022 17:02, Kevin Traynor wrote:
> 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.
> 

Hi. Any progress on this? David mentioned it could be missing

+#include <rte_bus_pci.h>

from:

commit c4c3e8afefa8b7e7bc19073f9a159d50c75c8770
Author: Michael Baum <michaelba at nvidia.com>
Date:   Mon Feb 14 11:35:01 2022 +0200

     common/mlx5: share VF check function

That patch can backport cleanly, but I don't have a windows env to test 
the clang build before it hits the CI. Please advise on path forward.

thanks,
Kevin.

> [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