DPDK patches and discussions
 help / color / mirror / Atom feed
From: Michael Baum <michaelba@nvidia.com>
To: <dev@dpdk.org>
Cc: Matan Azrad <matan@nvidia.com>,
	Raslan Darawsheh <rasland@nvidia.com>,
	Viacheslav Ovsiienko <viacheslavo@nvidia.com>, <stable@dpdk.org>
Subject: [dpdk-dev] [PATCH 4/6] common/mlx5: fix class combination validation
Date: Tue, 31 Aug 2021 23:37:30 +0300	[thread overview]
Message-ID: <20210831203732.3411134-5-michaelba@nvidia.com> (raw)
In-Reply-To: <20210831203732.3411134-1-michaelba@nvidia.com>

The common probe function gets as a user argument the classes it should
create, and checks whether the combination is valid.

In case the device already exists, it checks the integration of the
above with the classes that the device has.
However, the function does not check the combination when the device
does not exist and it has to create it.

Check if the combination is valid for all cases.

Fixes: ad435d320473 ("common/mlx5: add bus-agnostic layer")
Cc: stable@dpdk.org

Signed-off-by: Michael Baum <michaelba@nvidia.com>
---
 drivers/common/mlx5/mlx5_common.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c
index 459cf4bcc4..f6e440dca1 100644
--- a/drivers/common/mlx5/mlx5_common.c
+++ b/drivers/common/mlx5/mlx5_common.c
@@ -317,14 +317,16 @@ mlx5_common_dev_probe(struct rte_device *eal_dev)
 		dev->dev = eal_dev;
 		TAILQ_INSERT_HEAD(&devices_list, dev, next);
 		new_device = true;
-	} else {
-		/* Validate combination here. */
-		ret = is_valid_class_combination(classes |
-						 dev->classes_loaded);
-		if (ret != 0) {
-			DRV_LOG(ERR, "Unsupported mlx5 classes combination.");
-			return ret;
-		}
+	}
+	/*
+	 * Validate combination here.
+	 * For new device, the classes_loaded field is 0 and it check only
+	 * the classes given as user device arguments.
+	 */
+	ret = is_valid_class_combination(classes | dev->classes_loaded);
+	if (ret != 0) {
+		DRV_LOG(ERR, "Unsupported mlx5 classes combination.");
+		goto class_err;
 	}
 	ret = drivers_probe(dev, classes);
 	if (ret)
-- 
2.25.1


  parent reply	other threads:[~2021-08-31 20:38 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-31 20:37 [dpdk-dev] [PATCH 0/6] mlx5: some independent fixes Michael Baum
2021-08-31 20:37 ` [dpdk-dev] [PATCH 1/6] net/mlx5: fix shared device context creation error flow Michael Baum
2021-09-05  8:46   ` Raslan Darawsheh
2021-08-31 20:37 ` [dpdk-dev] [PATCH 2/6] net/mlx5: fix PCI probing " Michael Baum
2021-09-05  8:53   ` Raslan Darawsheh
2021-08-31 20:37 ` [dpdk-dev] [PATCH 3/6] net/mlx5: fix allow duplicate pattern devarg default Michael Baum
2021-08-31 20:37 ` Michael Baum [this message]
2021-08-31 20:37 ` [dpdk-dev] [PATCH 5/6] common/mlx5: fix device list operation concurrency Michael Baum
2021-08-31 20:37 ` [dpdk-dev] [PATCH 6/6] common/mlx5: fix resource cleanliness in a device remove Michael Baum
2021-09-01  7:46 ` [dpdk-dev] [PATCH 0/6] mlx5: some independent fixes Matan Azrad
2021-09-12 10:36 ` [dpdk-dev] [PATCH v2 " Michael Baum
2021-09-12 10:36   ` [dpdk-dev] [PATCH v2 1/6] net/mlx5: fix memory leak in the SH creation Michael Baum
2021-09-12 10:36   ` [dpdk-dev] [PATCH v2 2/6] net/mlx5: fix memory leak in PCI probe Michael Baum
2021-09-12 10:36   ` [dpdk-dev] [PATCH v2 3/6] net/mlx5: fix allow duplicate pattern devarg default Michael Baum
2021-09-12 10:36   ` [dpdk-dev] [PATCH v2 4/6] common/mlx5: fix class combination validation Michael Baum
2021-09-12 10:36   ` [dpdk-dev] [PATCH v2 5/6] common/mlx5: fix device list operation concurrency Michael Baum
2021-09-12 10:36   ` [dpdk-dev] [PATCH v2 6/6] common/mlx5: fix resource cleanliness in a device remove Michael Baum
2021-09-20 21:25   ` [dpdk-dev] [PATCH v2 0/6] mlx5: some independent fixes Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210831203732.3411134-5-michaelba@nvidia.com \
    --to=michaelba@nvidia.com \
    --cc=dev@dpdk.org \
    --cc=matan@nvidia.com \
    --cc=rasland@nvidia.com \
    --cc=stable@dpdk.org \
    --cc=viacheslavo@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).