dev.dpdk.org archive mirror
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: dev@dpdk.org
Cc: Bruce Richardson <bruce.richardson@intel.com>, shreyansh.jain@nxp.com
Subject: [dpdk-dev] [PATCH v2 4/4] rawdev: pass device id as parameter to selftest
Date: Fri, 21 Jun 2019 16:56:59 +0100	[thread overview]
Message-ID: <20190621155659.29297-5-bruce.richardson@intel.com> (raw)
In-Reply-To: <20190621155659.29297-1-bruce.richardson@intel.com>

When running self-tests, the driver needs to know the device on which to
run the tests, so we need to take the device ID as parameter. Only the
skeleton driver is providing this selftest capability right now, so we can
easily update it for this change.

Cc: shreyansh.jain@nxp.com
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---

Since this change only affects the internals of the drivers, it's not an
ABI or API change

---

 drivers/raw/skeleton_rawdev/skeleton_rawdev.c      | 8 +++++---
 drivers/raw/skeleton_rawdev/skeleton_rawdev.h      | 2 +-
 drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c | 3 ++-
 lib/librte_rawdev/rte_rawdev.c                     | 2 +-
 lib/librte_rawdev/rte_rawdev_pmd.h                 | 2 +-
 5 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/raw/skeleton_rawdev/skeleton_rawdev.c b/drivers/raw/skeleton_rawdev/skeleton_rawdev.c
index 709be7691..42471fbd1 100644
--- a/drivers/raw/skeleton_rawdev/skeleton_rawdev.c
+++ b/drivers/raw/skeleton_rawdev/skeleton_rawdev.c
@@ -583,6 +583,8 @@ skeleton_rawdev_create(const char *name,
 		goto cleanup;
 	}
 
+	ret = rawdev->dev_id; /* return the rawdev id of new device */
+
 	rawdev->dev_ops = &skeleton_rawdev_ops;
 	rawdev->device = &vdev->device;
 
@@ -720,19 +722,19 @@ skeleton_rawdev_probe(struct rte_vdev_device *vdev)
 	/* In case of invalid argument, selftest != 1; ignore other values */
 
 	ret = skeleton_rawdev_create(name, vdev, rte_socket_id());
-	if (!ret) {
+	if (ret >= 0) {
 		/* In case command line argument for 'selftest' was passed;
 		 * if invalid arguments were passed, execution continues but
 		 * without selftest.
 		 */
 		if (selftest == 1)
-			test_rawdev_skeldev();
+			test_rawdev_skeldev(ret);
 	}
 
 	/* Device instance created; Second instance not possible */
 	skeldev_init_once = 1;
 
-	return ret;
+	return ret < 0 ? ret : 0;
 }
 
 static int
diff --git a/drivers/raw/skeleton_rawdev/skeleton_rawdev.h b/drivers/raw/skeleton_rawdev/skeleton_rawdev.h
index 5045b5922..c3f92e72a 100644
--- a/drivers/raw/skeleton_rawdev/skeleton_rawdev.h
+++ b/drivers/raw/skeleton_rawdev/skeleton_rawdev.h
@@ -131,6 +131,6 @@ skeleton_rawdev_get_priv(const struct rte_rawdev *rawdev)
 	return rawdev->dev_private;
 }
 
-int test_rawdev_skeldev(void);
+int test_rawdev_skeldev(uint16_t dev_id);
 
 #endif /* __SKELETON_RAWDEV_H__ */
diff --git a/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c b/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
index d7177ea75..ad700e21c 100644
--- a/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
+++ b/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
@@ -427,8 +427,9 @@ static void skeldev_test_run(int (*setup)(void),
 }
 
 int
-test_rawdev_skeldev(void)
+test_rawdev_skeldev(uint16_t dev_id)
 {
+	test_dev_id = dev_id;
 	testsuite_setup();
 
 	SKELDEV_TEST_RUN(NULL, NULL, test_rawdev_count);
diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c
index 2b2f45d7c..15de2d413 100644
--- a/lib/librte_rawdev/rte_rawdev.c
+++ b/lib/librte_rawdev/rte_rawdev.c
@@ -378,7 +378,7 @@ rte_rawdev_selftest(uint16_t dev_id)
 	struct rte_rawdev *dev = &rte_rawdevs[dev_id];
 
 	RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_selftest, -ENOTSUP);
-	return (*dev->dev_ops->dev_selftest)();
+	return (*dev->dev_ops->dev_selftest)(dev_id);
 }
 
 int
diff --git a/lib/librte_rawdev/rte_rawdev_pmd.h b/lib/librte_rawdev/rte_rawdev_pmd.h
index 5e6cf1d16..aa6af4a37 100644
--- a/lib/librte_rawdev/rte_rawdev_pmd.h
+++ b/lib/librte_rawdev/rte_rawdev_pmd.h
@@ -499,7 +499,7 @@ typedef int (*rawdev_firmware_unload_t)(struct rte_rawdev *dev);
  * @return
  *   Return 0 on success
  */
-typedef int (*rawdev_selftest_t)(void);
+typedef int (*rawdev_selftest_t)(uint16_t dev_id);
 
 /** Rawdevice operations function pointer table */
 struct rte_rawdev_ops {
-- 
2.21.0


  parent reply	other threads:[~2019-06-21 15:57 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-19 17:08 [dpdk-dev] [PATCH 0/2] rawdev autotest fixes Bruce Richardson
2019-06-19 17:08 ` [dpdk-dev] [PATCH 1/2] raw/skeleton: fix failing test case Bruce Richardson
2019-06-19 17:08 ` [dpdk-dev] [PATCH 2/2] app/test: add missing rawdev autotest to meson build Bruce Richardson
2019-06-21 15:56 ` [dpdk-dev] [PATCH v2 0/4] fixes and improvements for rawdev Bruce Richardson
2019-06-21 15:56   ` [dpdk-dev] [PATCH v2 1/4] raw/skeleton: fix failing test case Bruce Richardson
2019-06-27 11:50     ` Hemant Agrawal
2019-07-01 18:03     ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
2019-06-21 15:56   ` [dpdk-dev] [PATCH v2 2/4] app/test: add missing rawdev test to meson build Bruce Richardson
2019-07-01 18:10     ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
2019-06-21 15:56   ` [dpdk-dev] [PATCH v2 3/4] raw/skeleton: remove compile-time constant for device id Bruce Richardson
2019-06-21 15:56   ` Bruce Richardson [this message]
2019-07-04  9:33     ` [dpdk-dev] [PATCH v2 4/4] rawdev: pass device id as parameter to selftest Shreyansh Jain
2019-07-02  9:56 ` [dpdk-dev] [PATCH v3 0/3] fixes and improvements for rawdev Bruce Richardson
2019-07-02  9:56   ` [dpdk-dev] [PATCH v3 1/3] app/test: add missing rawdev autotest to meson build Bruce Richardson
2019-07-02  9:56   ` [dpdk-dev] [PATCH v3 2/3] raw/skeleton: remove compile-time constant for device id Bruce Richardson
2019-07-02  9:56   ` [dpdk-dev] [PATCH v3 3/3] rawdev: pass the device id as parameter to selftest Bruce Richardson
2019-07-02 15:05   ` [dpdk-dev] [PATCH v3 0/3] fixes and improvements for rawdev 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=20190621155659.29297-5-bruce.richardson@intel.com \
    --to=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=shreyansh.jain@nxp.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).