app/test: extract PCI setup and cleanup functions
authorJan Viktorin <viktorin@rehivetech.com>
Mon, 13 Jun 2016 15:07:42 +0000 (17:07 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 13 Jun 2016 18:57:28 +0000 (20:57 +0200)
Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
app/test/test_pci.c

index 8b7c8bb..50078a0 100644 (file)
@@ -148,21 +148,46 @@ static void free_devargs_list(void)
 struct pci_driver_list real_pci_driver_list =
        TAILQ_HEAD_INITIALIZER(real_pci_driver_list);
 
+static int
+test_pci_setup(void)
+{
+       struct rte_pci_driver *dr;
+
+       /* Unregister original driver list */
+       while (!TAILQ_EMPTY(&pci_driver_list)) {
+               dr = TAILQ_FIRST(&pci_driver_list);
+               rte_eal_pci_unregister(dr);
+               TAILQ_INSERT_TAIL(&real_pci_driver_list, dr, next);
+       }
+
+       return 0;
+}
+
+static int
+test_pci_cleanup(void)
+{
+       struct rte_pci_driver *dr;
+
+       /* Restore original driver list */
+       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;
+}
+
 int
 test_pci(void)
 {
        struct rte_devargs_list save_devargs_list;
-       struct rte_pci_driver *dr = NULL;
 
        printf("Dump all devices\n");
        rte_eal_pci_dump(stdout);
 
-       /* Unregister all previous drivers */
-       while (!TAILQ_EMPTY(&pci_driver_list)) {
-               dr = TAILQ_FIRST(&pci_driver_list);
-               rte_eal_pci_unregister(dr);
-               TAILQ_INSERT_TAIL(&real_pci_driver_list, dr, next);
-       }
+       if (test_pci_setup())
+               return -1;
 
        rte_eal_pci_register(&my_driver);
        rte_eal_pci_register(&my_driver2);
@@ -199,12 +224,8 @@ test_pci(void)
        rte_eal_pci_unregister(&my_driver);
        rte_eal_pci_unregister(&my_driver2);
 
-       /* Restore original driver list */
-       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);
-       }
+       if (test_pci_cleanup())
+               return -1;
 
        return 0;
 }