All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Viktorin <viktorin@rehivetech.com>
To: dev@dpdk.org
Cc: Jan Viktorin <viktorin@rehivetech.com>,
	Thomas Monjalon <thomas.monjalon@6wind.com>,
	David Marchand <david.marchand@6wind.com>,
	Bruce Richardson <bruce.richardson@intel.com>
Subject: [PATCH v4 06/10] app/test: use linked list to store PCI drivers
Date: Mon, 13 Jun 2016 10:12:26 +0200	[thread overview]
Message-ID: <1465805550-30640-7-git-send-email-viktorin@rehivetech.com> (raw)
In-Reply-To: <1465805550-30640-1-git-send-email-viktorin@rehivetech.com>
In-Reply-To: <1463510101-5633-1-git-send-email-viktorin@rehivetech.com>

The test unregisters all drivers before start. The drivers were stored
into a fixed-sized array. This is inflexible. This patch change this to
utilize a linked list for the same purpose.

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
v3:
* fixed commit message
* used "backup" to describe the real_pci_driver_list
---
 app/test/test_pci.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/app/test/test_pci.c b/app/test/test_pci.c
index 0ed357e..8b7c8bb 100644
--- a/app/test/test_pci.c
+++ b/app/test/test_pci.c
@@ -144,21 +144,24 @@ static void free_devargs_list(void)
 	}
 }
 
+/* backup real drivers (not used for testing) */
+struct pci_driver_list real_pci_driver_list =
+	TAILQ_HEAD_INITIALIZER(real_pci_driver_list);
+
 int
 test_pci(void)
 {
 	struct rte_devargs_list save_devargs_list;
 	struct rte_pci_driver *dr = NULL;
-	struct rte_pci_driver *save_pci_driver_list[NUM_MAX_DRIVERS];
-	unsigned i, num_drivers = 0;
 
 	printf("Dump all devices\n");
 	rte_eal_pci_dump(stdout);
 
 	/* Unregister all previous drivers */
-	TAILQ_FOREACH(dr, &pci_driver_list, next) {
+	while (!TAILQ_EMPTY(&pci_driver_list)) {
+		dr = TAILQ_FIRST(&pci_driver_list);
 		rte_eal_pci_unregister(dr);
-		save_pci_driver_list[num_drivers++] = dr;
+		TAILQ_INSERT_TAIL(&real_pci_driver_list, dr, next);
 	}
 
 	rte_eal_pci_register(&my_driver);
@@ -197,8 +200,11 @@ test_pci(void)
 	rte_eal_pci_unregister(&my_driver2);
 
 	/* Restore original driver list */
-	for (i = 0; i < num_drivers; i++)
-		rte_eal_pci_register(save_pci_driver_list[i]);
+	while (!TAILQ_EMPTY(&real_pci_driver_list)) {
+		dr = TAILQ_FIRST(&real_pci_driver_list);
+		TAILQ_REMOVE(&real_pci_driver_list, dr, next);
+		rte_eal_pci_register(dr);
+	}
 
 	return 0;
 }
-- 
2.8.0

  parent reply	other threads:[~2016-06-13  8:17 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-29 13:11 [RFC 0/4] Include resources in tests Jan Viktorin
2016-04-29 13:11 ` [RFC 1/4] app/test: introduce resources for tests Jan Viktorin
2016-04-29 13:11 ` [RFC 2/4] app/test: support resources externally linked Jan Viktorin
2016-04-29 13:11 ` [RFC 3/4] app/test: add functions to create files from resources Jan Viktorin
2016-04-29 13:11 ` [RFC 4/4] app/test: support resources archived by tar Jan Viktorin
2016-05-05 13:33   ` Bruce Richardson
2016-05-05 17:05     ` Jan Viktorin
2016-05-06  9:02       ` Bruce Richardson
2016-04-29 14:42 ` [RFC 0/4] Include resources in tests Bruce Richardson
2016-04-29 20:52   ` Jan Viktorin
2016-05-05 13:29 ` Bruce Richardson
2016-05-05 17:03   ` Jan Viktorin
2016-05-06  9:03     ` Bruce Richardson
2016-05-06 10:48 ` [PATCH v1 00/10] " Jan Viktorin
2016-05-06 10:48 ` [PATCH v1 01/10] app/test: introduce resources for tests Jan Viktorin
2016-05-06 14:01   ` Thomas Monjalon
2016-05-06 16:20     ` Jan Viktorin
2016-05-12 14:58       ` Thomas Monjalon
2016-05-12 15:01         ` Jan Viktorin
2016-05-09 15:36     ` Jan Viktorin
2016-05-06 10:48 ` [PATCH v1 02/10] app/test: support resources externally linked Jan Viktorin
2016-05-06 14:32   ` Thomas Monjalon
2016-05-06 16:31     ` Jan Viktorin
2016-05-09 15:19     ` Jan Viktorin
2016-05-12 15:05       ` Thomas Monjalon
2016-05-06 10:48 ` [PATCH v1 03/10] app/test: add functions to create files from resources Jan Viktorin
2016-05-06 10:48 ` [PATCH v1 04/10] app/test: support resources archived by tar Jan Viktorin
2016-05-12 15:26   ` Thomas Monjalon
2016-05-12 15:28     ` Thomas Monjalon
2016-05-06 10:48 ` [PATCH v1 05/10] app/test: use linked list to store PCI drivers Jan Viktorin
2016-05-06 10:48 ` [PATCH v1 06/10] app/test: extract test_pci_setup and test_pci_cleanup Jan Viktorin
2016-05-06 10:48 ` [PATCH v1 07/10] app/test: convert current pci_test into a single test case Jan Viktorin
2016-05-06 10:48 ` [PATCH v1 08/10] eal/pci: replace SYSFS_PCI_DEVICES with pci_get_sysfs_path() Jan Viktorin
2016-05-06 10:48 ` [PATCH v1 09/10] app/test: scan PCI bus using a fake sysfs Jan Viktorin
2016-05-06 10:48 ` [PATCH v1 10/10] app/test: do not dump PCI devices in blacklist test Jan Viktorin
2016-05-10 18:13 ` [PATCH v2 00/11] Include resources in tests Jan Viktorin
2016-05-10 18:13 ` [PATCH v2 01/11] app/test: introduce resources for tests Jan Viktorin
2016-05-12 15:13   ` Thomas Monjalon
2016-05-12 15:19   ` Thomas Monjalon
2016-05-12 15:26     ` Jan Viktorin
2016-05-10 18:13 ` [PATCH v2 02/11] mk: define objcopy-specific target and arch Jan Viktorin
2016-05-10 18:13 ` [PATCH v2 03/11] app/test: support resources externally linked Jan Viktorin
2016-05-10 18:13 ` [PATCH v2 04/11] app/test: add functions to create files from resources Jan Viktorin
2016-05-10 18:13 ` [PATCH v2 05/11] app/test: support resources archived by tar Jan Viktorin
2016-05-10 18:13 ` [PATCH v2 06/11] app/test: use linked list to store PCI drivers Jan Viktorin
2016-05-12 15:31   ` Thomas Monjalon
2016-05-12 15:53     ` Jan Viktorin
2016-05-12 16:08       ` Thomas Monjalon
2016-05-12 21:00         ` Jan Viktorin
2016-05-12 21:44           ` Thomas Monjalon
2016-05-10 18:13 ` [PATCH v2 07/11] app/test: extract test_pci_setup and test_pci_cleanup Jan Viktorin
2016-05-10 18:13 ` [PATCH v2 08/11] app/test: convert current pci_test into a single test case Jan Viktorin
2016-05-12 15:34   ` Thomas Monjalon
2016-05-13 15:19     ` Jan Viktorin
2016-05-13 15:35       ` Thomas Monjalon
2016-05-10 18:13 ` [PATCH v2 09/11] eal/pci: replace SYSFS_PCI_DEVICES with pci_get_sysfs_path() Jan Viktorin
2016-05-12 15:41   ` Thomas Monjalon
2016-05-12 15:46     ` Jan Viktorin
2016-05-12 16:10       ` Thomas Monjalon
2016-05-13 15:26         ` Jan Viktorin
2016-05-12 15:44   ` Thomas Monjalon
2016-05-10 18:13 ` [PATCH v2 10/11] app/test: scan PCI bus using a fake sysfs Jan Viktorin
2016-05-10 18:13 ` [PATCH v2 11/11] app/test: do not dump PCI devices in blacklist test Jan Viktorin
2016-05-17 18:34 ` [PATCH v3 00/11] Include resources in tests Jan Viktorin
2016-06-13  8:12   ` [PATCH v4 00/10] " Jan Viktorin
2016-06-13  8:20     ` Jan Viktorin
2016-06-13 15:07     ` [PATCH v5 " Jan Viktorin
2016-06-13 18:32       ` Thomas Monjalon
2016-06-14  8:23         ` Hunt, David
2016-06-14  8:37           ` Thomas Monjalon
2016-06-14  8:59           ` [PATCH] config: make libarchive optional Thomas Monjalon
2016-06-14  9:33             ` Jan Viktorin
2016-06-14  9:50               ` Thomas Monjalon
2016-06-14 10:01             ` [PATCH v2] " Thomas Monjalon
2016-06-14 12:53               ` Jan Viktorin
2016-06-14 13:33                 ` Thomas Monjalon
2016-06-13 15:07     ` [PATCH v5 01/10] app/test: introduce resources for tests Jan Viktorin
2016-06-13 15:07     ` [PATCH v5 02/10] mk: define objcopy-specific target and arch Jan Viktorin
2016-06-13 15:07     ` [PATCH v5 03/10] app/test: support resources externally linked Jan Viktorin
2016-06-13 15:07     ` [PATCH v5 04/10] app/test: add functions to create files from resources Jan Viktorin
2016-06-13 15:07     ` [PATCH v5 05/10] app/test: support resources archived by tar Jan Viktorin
2016-06-13 15:07     ` [PATCH v5 06/10] app/test: use linked list to store PCI drivers Jan Viktorin
2016-06-13 15:07     ` [PATCH v5 07/10] app/test: extract test_pci_setup and test_pci_cleanup Jan Viktorin
2016-06-13 15:07     ` [PATCH v5 08/10] app/test: convert current pci_test into a single test case Jan Viktorin
2016-06-13 15:07     ` [PATCH v5 09/10] eal/pci: allow to override sysfs Jan Viktorin
2016-06-13 15:07     ` [PATCH v5 10/10] app/test: do not dump PCI devices in blacklist test Jan Viktorin
2016-06-13  8:12   ` [PATCH v4 01/10] app/test: introduce resources for tests Jan Viktorin
2016-06-13  8:12   ` [PATCH v4 02/10] mk: define objcopy-specific target and arch Jan Viktorin
2016-06-13  8:12   ` [PATCH v4 03/10] app/test: support resources externally linked Jan Viktorin
2016-06-13  8:12   ` [PATCH v4 04/10] app/test: add functions to create files from resources Jan Viktorin
2016-06-13  8:12   ` [PATCH v4 05/10] app/test: support resources archived by tar Jan Viktorin
2016-06-13 14:40     ` Thomas Monjalon
2016-06-13 14:43       ` Jan Viktorin
2016-06-13  8:12   ` Jan Viktorin [this message]
2016-06-13  8:12   ` [PATCH v4 07/10] app/test: extract test_pci_setup and test_pci_cleanup Jan Viktorin
2016-06-13  8:12   ` [PATCH v4 08/10] app/test: convert current pci_test into a single test case Jan Viktorin
2016-06-13  8:12   ` [PATCH v4 09/10] eal/pci: allow to override sysfs Jan Viktorin
2016-06-13  8:12   ` [PATCH v4 10/10] app/test: do not dump PCI devices in blacklist test Jan Viktorin
2016-05-17 18:34 ` [PATCH v3 01/11] app/test: introduce resources for tests Jan Viktorin
2016-05-19  8:51   ` Jan Viktorin
2016-05-17 18:34 ` [PATCH v3 02/11] mk: define objcopy-specific target and arch Jan Viktorin
2016-05-17 18:34 ` [PATCH v3 03/11] app/test: support resources externally linked Jan Viktorin
2016-05-17 18:34 ` [PATCH v3 04/11] app/test: add functions to create files from resources Jan Viktorin
2016-05-17 18:34 ` [PATCH v3 05/11] app/test: support resources archived by tar Jan Viktorin
2016-05-17 18:34 ` [PATCH v3 06/11] app/test: use linked list to store PCI drivers Jan Viktorin
2016-05-17 18:34 ` [PATCH v3 07/11] app/test: extract test_pci_setup and test_pci_cleanup Jan Viktorin
2016-05-17 18:34 ` [PATCH v3 08/11] app/test: convert current pci_test into a single test case Jan Viktorin
2016-05-17 18:34 ` [PATCH v3 09/11] eal/pci: allow to override sysfs Jan Viktorin
2016-05-19  8:51   ` Jan Viktorin
2016-05-17 18:35 ` [PATCH v3 10/11] app/test: scan PCI bus using a fake sysfs Jan Viktorin
2016-05-17 18:35 ` [PATCH v3 11/11] app/test: do not dump PCI devices in blacklist test Jan Viktorin

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=1465805550-30640-7-git-send-email-viktorin@rehivetech.com \
    --to=viktorin@rehivetech.com \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@6wind.com \
    --cc=dev@dpdk.org \
    --cc=thomas.monjalon@6wind.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.