All the buses can have a simple rte_bus object.
Mark as static whenever possible.

Signed-off-by: David Marchand <[email protected]>
---
 drivers/bus/auxiliary/auxiliary_common.c   | 44 ++++++++-------
 drivers/bus/auxiliary/linux/auxiliary.c    | 10 ++--
 drivers/bus/auxiliary/private.h            |  9 +---
 drivers/bus/cdx/bus_cdx_driver.h           |  1 -
 drivers/bus/cdx/cdx.c                      | 42 +++++++--------
 drivers/bus/cdx/private.h                  |  7 ---
 drivers/bus/dpaa/dpaa_bus.c                | 58 +++++++++-----------
 drivers/bus/fslmc/fslmc_bus.c              | 62 +++++++++++-----------
 drivers/bus/fslmc/fslmc_vfio.c             | 30 +++++------
 drivers/bus/fslmc/portal/dpaa2_hw_dprc.c   |  2 +-
 drivers/bus/fslmc/private.h                |  9 +---
 drivers/bus/pci/bsd/pci.c                  | 16 +++---
 drivers/bus/pci/linux/pci.c                | 13 +++--
 drivers/bus/pci/pci_common.c               | 60 ++++++++++-----------
 drivers/bus/pci/pci_params.c               |  2 +-
 drivers/bus/pci/private.h                  |  9 +---
 drivers/bus/pci/windows/pci.c              | 13 +++--
 drivers/bus/platform/bus_platform_driver.h |  1 -
 drivers/bus/platform/platform.c            | 52 +++++++++---------
 drivers/bus/platform/private.h             |  9 ----
 drivers/bus/uacce/uacce.c                  | 49 +++++++----------
 drivers/bus/vmbus/linux/vmbus_bus.c        | 10 ++--
 drivers/bus/vmbus/private.h                |  9 +---
 drivers/bus/vmbus/vmbus_common.c           | 34 ++++++------
 24 files changed, 236 insertions(+), 315 deletions(-)

diff --git a/drivers/bus/auxiliary/auxiliary_common.c 
b/drivers/bus/auxiliary/auxiliary_common.c
index ff05716539..048aacf254 100644
--- a/drivers/bus/auxiliary/auxiliary_common.c
+++ b/drivers/bus/auxiliary/auxiliary_common.c
@@ -56,7 +56,7 @@ auxiliary_scan(void)
 void
 auxiliary_on_scan(struct rte_auxiliary_device *aux_dev)
 {
-       aux_dev->device.devargs = rte_bus_find_devargs(&auxiliary_bus.bus, 
aux_dev->name);
+       aux_dev->device.devargs = rte_bus_find_devargs(&auxiliary_bus, 
aux_dev->name);
 }
 
 static bool
@@ -156,7 +156,7 @@ auxiliary_parse(const char *name, void *addr)
        if (strlen(name) == 0)
                return 0;
 
-       RTE_BUS_FOREACH_DRV(drv, &auxiliary_bus.bus) {
+       RTE_BUS_FOREACH_DRV(drv, &auxiliary_bus) {
                if (drv->match(name))
                        break;
        }
@@ -170,7 +170,7 @@ RTE_EXPORT_INTERNAL_SYMBOL(rte_auxiliary_register)
 void
 rte_auxiliary_register(struct rte_auxiliary_driver *driver)
 {
-       rte_bus_add_driver(&auxiliary_bus.bus, &driver->driver);
+       rte_bus_add_driver(&auxiliary_bus, &driver->driver);
 }
 
 /* Unregister a driver */
@@ -178,7 +178,7 @@ RTE_EXPORT_INTERNAL_SYMBOL(rte_auxiliary_unregister)
 void
 rte_auxiliary_unregister(struct rte_auxiliary_driver *driver)
 {
-       rte_bus_remove_driver(&auxiliary_bus.bus, &driver->driver);
+       rte_bus_remove_driver(&auxiliary_bus, &driver->driver);
 }
 
 static int
@@ -189,7 +189,7 @@ auxiliary_unplug(struct rte_device *dev)
 
        ret = rte_auxiliary_driver_remove_dev(adev);
        if (ret == 0) {
-               rte_bus_remove_device(&auxiliary_bus.bus, &adev->device);
+               rte_bus_remove_device(&auxiliary_bus, &adev->device);
                rte_devargs_remove(dev->devargs);
                rte_intr_instance_free(adev->intr_handle);
                free(adev);
@@ -203,7 +203,7 @@ auxiliary_cleanup(void)
        struct rte_auxiliary_device *dev;
        int error = 0;
 
-       RTE_BUS_FOREACH_DEV(dev, &auxiliary_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &auxiliary_bus) {
                int ret;
 
                if (!rte_dev_is_probed(&dev->device))
@@ -250,7 +250,7 @@ auxiliary_get_iommu_class(void)
 {
        const struct rte_auxiliary_driver *drv;
 
-       RTE_BUS_FOREACH_DRV(drv, &auxiliary_bus.bus) {
+       RTE_BUS_FOREACH_DRV(drv, &auxiliary_bus) {
                if ((drv->drv_flags & RTE_AUXILIARY_DRV_NEED_IOVA_AS_VA) > 0)
                        return RTE_IOVA_VA;
        }
@@ -258,22 +258,20 @@ auxiliary_get_iommu_class(void)
        return RTE_IOVA_DC;
 }
 
-struct rte_auxiliary_bus auxiliary_bus = {
-       .bus = {
-               .scan = auxiliary_scan,
-               .probe = rte_bus_generic_probe,
-               .cleanup = auxiliary_cleanup,
-               .find_device = rte_bus_generic_find_device,
-               .match = auxiliary_bus_match,
-               .probe_device = auxiliary_probe_device,
-               .unplug = auxiliary_unplug,
-               .parse = auxiliary_parse,
-               .dma_map = auxiliary_dma_map,
-               .dma_unmap = auxiliary_dma_unmap,
-               .get_iommu_class = auxiliary_get_iommu_class,
-               .dev_iterate = rte_bus_generic_dev_iterate,
-       },
+struct rte_bus auxiliary_bus = {
+       .scan = auxiliary_scan,
+       .probe = rte_bus_generic_probe,
+       .cleanup = auxiliary_cleanup,
+       .find_device = rte_bus_generic_find_device,
+       .match = auxiliary_bus_match,
+       .probe_device = auxiliary_probe_device,
+       .unplug = auxiliary_unplug,
+       .parse = auxiliary_parse,
+       .dma_map = auxiliary_dma_map,
+       .dma_unmap = auxiliary_dma_unmap,
+       .get_iommu_class = auxiliary_get_iommu_class,
+       .dev_iterate = rte_bus_generic_dev_iterate,
 };
 
-RTE_REGISTER_BUS(auxiliary, auxiliary_bus.bus);
+RTE_REGISTER_BUS(auxiliary, auxiliary_bus);
 RTE_LOG_REGISTER_DEFAULT(auxiliary_bus_logtype, NOTICE);
diff --git a/drivers/bus/auxiliary/linux/auxiliary.c 
b/drivers/bus/auxiliary/linux/auxiliary.c
index c65bbc8fcc..b99a205dba 100644
--- a/drivers/bus/auxiliary/linux/auxiliary.c
+++ b/drivers/bus/auxiliary/linux/auxiliary.c
@@ -48,12 +48,12 @@ auxiliary_scan_one(const char *dirname, const char *name)
        auxiliary_on_scan(dev);
 
        /* Device is valid, add in list (sorted) */
-       RTE_BUS_FOREACH_DEV(dev2, &auxiliary_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev2, &auxiliary_bus) {
                ret = strcmp(dev->name, dev2->name);
                if (ret > 0)
                        continue;
                if (ret < 0) {
-                       rte_bus_insert_device(&auxiliary_bus.bus, 
&dev2->device, &dev->device);
+                       rte_bus_insert_device(&auxiliary_bus, &dev2->device, 
&dev->device);
                } else { /* already registered */
                        if (rte_dev_is_probed(&dev2->device) &&
                            dev2->device.devargs != dev->device.devargs) {
@@ -65,7 +65,7 @@ auxiliary_scan_one(const char *dirname, const char *name)
                }
                return 0;
        }
-       rte_bus_add_device(&auxiliary_bus.bus, &dev->device);
+       rte_bus_add_device(&auxiliary_bus, &dev->device);
        return 0;
 }
 
@@ -109,7 +109,7 @@ auxiliary_scan(void)
                if (e->d_name[0] == '.')
                        continue;
 
-               if (rte_bus_device_is_ignored(&auxiliary_bus.bus, e->d_name))
+               if (rte_bus_device_is_ignored(&auxiliary_bus, e->d_name))
                        continue;
 
                snprintf(dirname, sizeof(dirname), "%s/%s",
@@ -117,7 +117,7 @@ auxiliary_scan(void)
 
                /* Ignore if no driver can handle. */
                drv = NULL;
-               RTE_BUS_FOREACH_DRV(drv, &auxiliary_bus.bus) {
+               RTE_BUS_FOREACH_DRV(drv, &auxiliary_bus) {
                        if (drv->match(e->d_name))
                                break;
                }
diff --git a/drivers/bus/auxiliary/private.h b/drivers/bus/auxiliary/private.h
index 116154eb56..282ad94618 100644
--- a/drivers/bus/auxiliary/private.h
+++ b/drivers/bus/auxiliary/private.h
@@ -19,14 +19,7 @@ extern int auxiliary_bus_logtype;
 #define AUXILIARY_LOG(level, ...) \
        RTE_LOG_LINE(level, AUXILIARY_BUS, __VA_ARGS__)
 
-/*
- * Structure describing the auxiliary bus
- */
-struct rte_auxiliary_bus {
-       struct rte_bus bus;                  /* Inherit the generic class */
-};
-
-extern struct rte_auxiliary_bus auxiliary_bus;
+extern struct rte_bus auxiliary_bus;
 
 /*
  * Test whether the auxiliary device exist.
diff --git a/drivers/bus/cdx/bus_cdx_driver.h b/drivers/bus/cdx/bus_cdx_driver.h
index 97fd3b6f88..1ac481119c 100644
--- a/drivers/bus/cdx/bus_cdx_driver.h
+++ b/drivers/bus/cdx/bus_cdx_driver.h
@@ -25,7 +25,6 @@ extern "C" {
 /* Forward declarations */
 struct rte_cdx_device;
 struct rte_cdx_driver;
-struct rte_cdx_bus;
 
 #define RTE_CDX_BUS_DEVICES_PATH "/sys/bus/cdx/devices"
 
diff --git a/drivers/bus/cdx/cdx.c b/drivers/bus/cdx/cdx.c
index cb4f755b8e..2443161e1a 100644
--- a/drivers/bus/cdx/cdx.c
+++ b/drivers/bus/cdx/cdx.c
@@ -84,7 +84,7 @@
 
 #define CDX_DEV_PREFIX "cdx-"
 
-struct rte_cdx_bus rte_cdx_bus;
+static struct rte_bus rte_cdx_bus;
 
 static int
 cdx_get_kernel_driver_by_path(const char *filename, char *driver_name,
@@ -194,7 +194,7 @@ cdx_scan_one(const char *dirname, const char *dev_name)
        }
        dev->id.device_id = (uint16_t)tmp;
 
-       rte_bus_add_device(&rte_cdx_bus.bus, &dev->device);
+       rte_bus_add_device(&rte_cdx_bus, &dev->device);
 
        return 0;
 
@@ -226,7 +226,7 @@ cdx_scan(void)
                if (e->d_name[0] == '.')
                        continue;
 
-               if (rte_bus_device_is_ignored(&rte_cdx_bus.bus, e->d_name))
+               if (rte_bus_device_is_ignored(&rte_cdx_bus, e->d_name))
                        continue;
 
                snprintf(dirname, sizeof(dirname), "%s/%s",
@@ -363,7 +363,7 @@ RTE_EXPORT_INTERNAL_SYMBOL(rte_cdx_register)
 void
 rte_cdx_register(struct rte_cdx_driver *driver)
 {
-       rte_bus_add_driver(&rte_cdx_bus.bus, &driver->driver);
+       rte_bus_add_driver(&rte_cdx_bus, &driver->driver);
 }
 
 /* unregister a driver */
@@ -371,7 +371,7 @@ RTE_EXPORT_INTERNAL_SYMBOL(rte_cdx_unregister)
 void
 rte_cdx_unregister(struct rte_cdx_driver *driver)
 {
-       rte_bus_remove_driver(&rte_cdx_bus.bus, &driver->driver);
+       rte_bus_remove_driver(&rte_cdx_bus, &driver->driver);
 }
 
 /*
@@ -412,7 +412,7 @@ cdx_unplug(struct rte_device *dev)
 
        ret = cdx_detach_dev(cdx_dev);
        if (ret == 0) {
-               rte_bus_remove_device(&rte_cdx_bus.bus, &cdx_dev->device);
+               rte_bus_remove_device(&rte_cdx_bus, &cdx_dev->device);
                rte_devargs_remove(dev->devargs);
                free(cdx_dev);
        }
@@ -440,27 +440,25 @@ cdx_dma_unmap(struct rte_device *dev, void *addr, 
uint64_t iova, size_t len)
 static enum rte_iova_mode
 cdx_get_iommu_class(void)
 {
-       if (TAILQ_EMPTY(&rte_cdx_bus.bus.device_list))
+       if (TAILQ_EMPTY(&rte_cdx_bus.device_list))
                return RTE_IOVA_DC;
 
        return RTE_IOVA_VA;
 }
 
-struct rte_cdx_bus rte_cdx_bus = {
-       .bus = {
-               .scan = cdx_scan,
-               .probe = rte_bus_generic_probe,
-               .find_device = rte_bus_generic_find_device,
-               .match = cdx_bus_match,
-               .probe_device = cdx_probe_device,
-               .unplug = cdx_unplug,
-               .parse = cdx_parse,
-               .dma_map = cdx_dma_map,
-               .dma_unmap = cdx_dma_unmap,
-               .get_iommu_class = cdx_get_iommu_class,
-               .dev_iterate = rte_bus_generic_dev_iterate,
-       },
+static struct rte_bus rte_cdx_bus = {
+       .scan = cdx_scan,
+       .probe = rte_bus_generic_probe,
+       .find_device = rte_bus_generic_find_device,
+       .match = cdx_bus_match,
+       .probe_device = cdx_probe_device,
+       .unplug = cdx_unplug,
+       .parse = cdx_parse,
+       .dma_map = cdx_dma_map,
+       .dma_unmap = cdx_dma_unmap,
+       .get_iommu_class = cdx_get_iommu_class,
+       .dev_iterate = rte_bus_generic_dev_iterate,
 };
 
-RTE_REGISTER_BUS(cdx, rte_cdx_bus.bus);
+RTE_REGISTER_BUS(cdx, rte_cdx_bus);
 RTE_LOG_REGISTER_DEFAULT(cdx_logtype_bus, NOTICE);
diff --git a/drivers/bus/cdx/private.h b/drivers/bus/cdx/private.h
index f69673aaab..289301bade 100644
--- a/drivers/bus/cdx/private.h
+++ b/drivers/bus/cdx/private.h
@@ -7,13 +7,6 @@
 
 #include "bus_cdx_driver.h"
 
-/**
- * Structure describing the CDX bus.
- */
-struct rte_cdx_bus {
-       struct rte_bus bus;                             /**< Inherit the 
generic class */
-};
-
 /**
  * Map a particular resource from a file.
  *
diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index 08c1607647..ee467b94d5 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -57,10 +57,6 @@
 #define DPAA_MAX_PUSH_MODE_QUEUE 8
 #define DPAA_DEFAULT_PUSH_MODE_QUEUE 4
 
-struct rte_dpaa_bus {
-       struct rte_bus bus;
-};
-
 struct rte_dpaa_bus_private {
        int device_count;
        int detected;
@@ -69,7 +65,7 @@ struct rte_dpaa_bus_private {
        RTE_ATOMIC(uint16_t) push_rxq_num;
 };
 
-static struct rte_dpaa_bus rte_dpaa_bus;
+static struct rte_bus rte_dpaa_bus;
 static struct rte_dpaa_bus_private dpaa_bus;
 static struct netcfg_info *dpaa_netcfg;
 
@@ -168,17 +164,17 @@ dpaa_add_to_device_list(struct rte_dpaa_device *newdev)
        int comp, inserted = 0;
        struct rte_dpaa_device *dev = NULL;
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_dpaa_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_dpaa_bus) {
                comp = compare_dpaa_devices(newdev, dev);
                if (comp < 0) {
-                       rte_bus_insert_device(&rte_dpaa_bus.bus, &dev->device, 
&newdev->device);
+                       rte_bus_insert_device(&rte_dpaa_bus, &dev->device, 
&newdev->device);
                        inserted = 1;
                        break;
                }
        }
 
        if (!inserted)
-               rte_bus_add_device(&rte_dpaa_bus.bus, &newdev->device);
+               rte_bus_add_device(&rte_dpaa_bus, &newdev->device);
 }
 
 /*
@@ -253,7 +249,7 @@ dpaa_create_device_list(void)
                                (fman_intf->fman->idx + 1), fman_intf->mac_idx);
                }
                dev->device.name = dev->name;
-               dev->device.devargs = rte_bus_find_devargs(&rte_dpaa_bus.bus, 
dev->name);
+               dev->device.devargs = rte_bus_find_devargs(&rte_dpaa_bus, 
dev->name);
                if (dev->device.devargs != NULL)
                        DPAA_BUS_INFO("**Devargs matched %s", dev->name);
 
@@ -303,7 +299,7 @@ dpaa_create_device_list(void)
                sprintf(dev->name, "dpaa_sec-%d", i+1);
                DPAA_BUS_LOG(INFO, "%s cryptodev added", dev->name);
                dev->device.name = dev->name;
-               dev->device.devargs = rte_bus_find_devargs(&rte_dpaa_bus.bus, 
dev->name);
+               dev->device.devargs = rte_bus_find_devargs(&rte_dpaa_bus, 
dev->name);
                if (dev->device.devargs != NULL)
                        DPAA_BUS_INFO("**Devargs matched %s", dev->name);
 
@@ -329,7 +325,7 @@ dpaa_create_device_list(void)
                sprintf(dev->name, "dpaa_qdma-%d", i+1);
                DPAA_BUS_LOG(INFO, "%s qdma device added", dev->name);
                dev->device.name = dev->name;
-               dev->device.devargs = rte_bus_find_devargs(&rte_dpaa_bus.bus, 
dev->name);
+               dev->device.devargs = rte_bus_find_devargs(&rte_dpaa_bus, 
dev->name);
                if (dev->device.devargs != NULL)
                        DPAA_BUS_INFO("**Devargs matched %s", dev->name);
 
@@ -349,8 +345,8 @@ dpaa_clean_device_list(void)
 {
        struct rte_dpaa_device *dev = NULL;
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_dpaa_bus.bus) {
-               rte_bus_remove_device(&rte_dpaa_bus.bus, &dev->device);
+       RTE_BUS_FOREACH_DEV(dev, &rte_dpaa_bus) {
+               rte_bus_remove_device(&rte_dpaa_bus, &dev->device);
                rte_intr_instance_free(dev->intr_handle);
                free(dev);
                dev = NULL;
@@ -583,7 +579,7 @@ rte_dpaa_driver_register(struct rte_dpaa_driver *driver)
 
        BUS_INIT_FUNC_TRACE();
 
-       rte_bus_add_driver(&rte_dpaa_bus.bus, &driver->driver);
+       rte_bus_add_driver(&rte_dpaa_bus, &driver->driver);
 }
 
 /* un-register a dpaa bus based dpaa driver */
@@ -593,7 +589,7 @@ rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver)
 {
        BUS_INIT_FUNC_TRACE();
 
-       rte_bus_remove_driver(&rte_dpaa_bus.bus, &driver->driver);
+       rte_bus_remove_driver(&rte_dpaa_bus, &driver->driver);
 }
 
 static bool
@@ -760,7 +756,7 @@ rte_dpaa_bus_scan(void)
        process_once = 1;
 
        /* If no device present on DPAA bus nothing needs to be done */
-       if (TAILQ_EMPTY(&rte_dpaa_bus.bus.device_list))
+       if (TAILQ_EMPTY(&rte_dpaa_bus.device_list))
                return 0;
 
        /* Register DPAA mempool ops only if any DPAA device has
@@ -768,7 +764,7 @@ rte_dpaa_bus_scan(void)
         */
        rte_mbuf_set_platform_mempool_ops(DPAA_MEMPOOL_OPS_NAME);
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_dpaa_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_dpaa_bus) {
                if (dev->device_type == FSL_DPAA_ETH) {
                        ret = rte_dpaa_setup_intr(dev->intr_handle);
                        if (ret)
@@ -816,7 +812,7 @@ dpaa_bus_cleanup(void)
        struct rte_dpaa_device *dev;
 
        BUS_INIT_FUNC_TRACE();
-       RTE_BUS_FOREACH_DEV(dev, &rte_dpaa_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_dpaa_bus) {
                const struct rte_dpaa_driver *drv;
                int ret = 0;
 
@@ -859,19 +855,17 @@ RTE_FINI_PRIO(dpaa_cleanup, 102)
        DPAA_BUS_DEBUG("Worker thread clean up done");
 }
 
-static struct rte_dpaa_bus rte_dpaa_bus = {
-       .bus = {
-               .scan = rte_dpaa_bus_scan,
-               .probe = rte_bus_generic_probe,
-               .parse = rte_dpaa_bus_parse,
-               .dev_compare = dpaa_bus_dev_compare,
-               .find_device = rte_bus_generic_find_device,
-               .get_iommu_class = rte_dpaa_get_iommu_class,
-               .match = dpaa_bus_match,
-               .probe_device = dpaa_bus_probe_device,
-               .dev_iterate = rte_bus_generic_dev_iterate,
-               .cleanup = dpaa_bus_cleanup,
-       },
+static struct rte_bus rte_dpaa_bus = {
+       .scan = rte_dpaa_bus_scan,
+       .probe = rte_bus_generic_probe,
+       .parse = rte_dpaa_bus_parse,
+       .dev_compare = dpaa_bus_dev_compare,
+       .find_device = rte_bus_generic_find_device,
+       .get_iommu_class = rte_dpaa_get_iommu_class,
+       .match = dpaa_bus_match,
+       .probe_device = dpaa_bus_probe_device,
+       .dev_iterate = rte_bus_generic_dev_iterate,
+       .cleanup = dpaa_bus_cleanup,
 };
 
 static struct rte_dpaa_bus_private dpaa_bus = {
@@ -879,5 +873,5 @@ static struct rte_dpaa_bus_private dpaa_bus = {
        .device_count = 0,
 };
 
-RTE_REGISTER_BUS(dpaa_bus, rte_dpaa_bus.bus);
+RTE_REGISTER_BUS(dpaa_bus, rte_dpaa_bus);
 RTE_LOG_REGISTER_DEFAULT(dpaa_logtype_bus, NOTICE);
diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c
index 821fe63955..88511d4dc7 100644
--- a/drivers/bus/fslmc/fslmc_bus.c
+++ b/drivers/bus/fslmc/fslmc_bus.c
@@ -27,7 +27,7 @@
 
 #define VFIO_IOMMU_GROUP_PATH "/sys/kernel/iommu_groups"
 
-struct rte_fslmc_bus rte_fslmc_bus;
+struct rte_bus rte_fslmc_bus;
 static int fslmc_bus_device_count[DPAA2_DEVTYPE_MAX];
 
 #define DPAA2_SEQN_DYNFIELD_NAME "dpaa2_seqn_dynfield"
@@ -48,8 +48,8 @@ cleanup_fslmc_device_list(void)
 {
        struct rte_dpaa2_device *dev;
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
-               rte_bus_remove_device(&rte_fslmc_bus.bus, &dev->device);
+       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
+               rte_bus_remove_device(&rte_fslmc_bus, &dev->device);
                rte_intr_instance_free(dev->intr_handle);
                free(dev);
                dev = NULL;
@@ -85,17 +85,17 @@ insert_in_device_list(struct rte_dpaa2_device *newdev)
        int comp, inserted = 0;
        struct rte_dpaa2_device *dev = NULL;
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
                comp = compare_dpaa2_devname(newdev, dev);
                if (comp < 0) {
-                       rte_bus_insert_device(&rte_fslmc_bus.bus, &dev->device, 
&newdev->device);
+                       rte_bus_insert_device(&rte_fslmc_bus, &dev->device, 
&newdev->device);
                        inserted = 1;
                        break;
                }
        }
 
        if (!inserted)
-               rte_bus_add_device(&rte_fslmc_bus.bus, &newdev->device);
+               rte_bus_add_device(&rte_fslmc_bus, &newdev->device);
 }
 
 static void
@@ -106,7 +106,7 @@ dump_device_list(void)
        /* Only if the log level has been set to Debugging, print list */
        if (rte_log_can_log(dpaa2_logtype_bus, RTE_LOG_DEBUG)) {
                DPAA2_BUS_LOG(DEBUG, "List of devices scanned on bus:");
-               RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
+               RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
                        DPAA2_BUS_LOG(DEBUG, "\t\t%s", dev->device.name);
                }
        }
@@ -198,7 +198,7 @@ scan_one_fslmc_device(char *dev_name)
                ret = -ENOMEM;
                goto cleanup;
        }
-       dev->device.devargs = rte_bus_find_devargs(&rte_fslmc_bus.bus, 
dev_name);
+       dev->device.devargs = rte_bus_find_devargs(&rte_fslmc_bus, dev_name);
 
        /* Update the device found into the device_count table */
        fslmc_bus_device_count[dev->dev_type]++;
@@ -247,7 +247,7 @@ rte_fslmc_parse(const char *name, void *addr)
         */
        if (sep_exists) {
                /* If either of "fslmc" or "name" are starting part */
-               if (!strncmp(name, rte_fslmc_bus.bus.name, 
strlen(rte_fslmc_bus.bus.name)) ||
+               if (!strncmp(name, rte_fslmc_bus.name, 
strlen(rte_fslmc_bus.name)) ||
                   (!strncmp(name, "name", strlen("name")))) {
                        goto jump_out;
                } else {
@@ -317,8 +317,8 @@ rte_fslmc_scan(void)
                struct rte_dpaa2_device *dev;
 
                DPAA2_BUS_DEBUG("Fslmc bus already scanned. Not rescanning");
-               RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
-                       dev->device.devargs = 
rte_bus_find_devargs(&rte_fslmc_bus.bus,
+               RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
+                       dev->device.devargs = 
rte_bus_find_devargs(&rte_fslmc_bus,
                                dev->device.name);
                }
                return 0;
@@ -369,7 +369,7 @@ rte_fslmc_scan(void)
        dump_device_list();
 
        /* Bus initialization - only if devices were found */
-       if (!TAILQ_EMPTY(&rte_fslmc_bus.bus.device_list)) {
+       if (!TAILQ_EMPTY(&rte_fslmc_bus.device_list)) {
                static const struct rte_mbuf_dynfield dpaa2_seqn_dynfield_desc 
= {
                        .name = DPAA2_SEQN_DYNFIELD_NAME,
                        .size = sizeof(dpaa2_seqn_t),
@@ -455,7 +455,7 @@ rte_fslmc_driver_register(struct rte_dpaa2_driver *driver)
        RTE_VERIFY(driver);
        RTE_VERIFY(driver->probe != NULL);
 
-       rte_bus_add_driver(&rte_fslmc_bus.bus, &driver->driver);
+       rte_bus_add_driver(&rte_fslmc_bus, &driver->driver);
 }
 
 /*un-register a fslmc bus based dpaa2 driver */
@@ -463,7 +463,7 @@ RTE_EXPORT_INTERNAL_SYMBOL(rte_fslmc_driver_unregister)
 void
 rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver)
 {
-       rte_bus_remove_driver(&rte_fslmc_bus.bus, &driver->driver);
+       rte_bus_remove_driver(&rte_fslmc_bus, &driver->driver);
 }
 
 /*
@@ -475,8 +475,8 @@ fslmc_all_device_support_iova(void)
        struct rte_dpaa2_device *dev;
        struct rte_dpaa2_driver *drv;
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
-               RTE_BUS_FOREACH_DRV(drv, &rte_fslmc_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
+               RTE_BUS_FOREACH_DRV(drv, &rte_fslmc_bus) {
                        if (!fslmc_bus_match(&drv->driver, &dev->device))
                                continue;
                        /* if the driver is not supporting IOVA */
@@ -496,7 +496,7 @@ rte_dpaa2_get_iommu_class(void)
        if (rte_eal_iova_mode() == RTE_IOVA_PA)
                return RTE_IOVA_PA;
 
-       if (TAILQ_EMPTY(&rte_fslmc_bus.bus.device_list))
+       if (TAILQ_EMPTY(&rte_fslmc_bus.device_list))
                return RTE_IOVA_DC;
 
        /* check if all devices on the bus support Virtual addressing or not */
@@ -546,21 +546,19 @@ fslmc_bus_unplug(struct rte_device *rte_dev)
        return -ENODEV;
 }
 
-struct rte_fslmc_bus rte_fslmc_bus = {
-       .bus = {
-               .scan = rte_fslmc_scan,
-               .probe = rte_bus_generic_probe,
-               .cleanup = rte_fslmc_close,
-               .parse = rte_fslmc_parse,
-               .dev_compare = fslmc_dev_compare,
-               .find_device = rte_bus_generic_find_device,
-               .get_iommu_class = rte_dpaa2_get_iommu_class,
-               .match = fslmc_bus_match,
-               .probe_device = fslmc_bus_probe_device,
-               .unplug = fslmc_bus_unplug,
-               .dev_iterate = rte_bus_generic_dev_iterate,
-       },
+struct rte_bus rte_fslmc_bus = {
+       .scan = rte_fslmc_scan,
+       .probe = rte_bus_generic_probe,
+       .cleanup = rte_fslmc_close,
+       .parse = rte_fslmc_parse,
+       .dev_compare = fslmc_dev_compare,
+       .find_device = rte_bus_generic_find_device,
+       .get_iommu_class = rte_dpaa2_get_iommu_class,
+       .match = fslmc_bus_match,
+       .probe_device = fslmc_bus_probe_device,
+       .unplug = fslmc_bus_unplug,
+       .dev_iterate = rte_bus_generic_dev_iterate,
 };
 
-RTE_REGISTER_BUS(fslmc, rte_fslmc_bus.bus);
+RTE_REGISTER_BUS(fslmc, rte_fslmc_bus);
 RTE_LOG_REGISTER_DEFAULT(dpaa2_logtype_bus, NOTICE);
diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index 5784adaf90..412b70e5ae 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -1554,12 +1554,12 @@ fslmc_vfio_close_group(void)
                return -EIO;
        }
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
                if (dev->device.devargs &&
                    dev->device.devargs->policy == RTE_DEV_BLOCKED) {
                        DPAA2_BUS_LOG(DEBUG, "%s Blacklisted, skipping",
                                      dev->device.name);
-                       rte_bus_remove_device(&rte_fslmc_bus.bus, &dev->device);
+                       rte_bus_remove_device(&rte_fslmc_bus, &dev->device);
                                continue;
                }
                switch (dev->dev_type) {
@@ -1599,7 +1599,7 @@ fslmc_vfio_process_group(void)
        bool is_dpmcp_in_blocklist = false, is_dpio_in_blocklist = false;
        int dpmcp_count = 0, dpio_count = 0, current_device;
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
                if (dev->dev_type == DPAA2_MPORTAL) {
                        dpmcp_count++;
                        if (dev->device.devargs &&
@@ -1616,14 +1616,14 @@ fslmc_vfio_process_group(void)
 
        /* Search the MCP as that should be initialized first. */
        current_device = 0;
-       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
                if (dev->dev_type == DPAA2_MPORTAL) {
                        current_device++;
                        if (dev->device.devargs &&
                            dev->device.devargs->policy == RTE_DEV_BLOCKED) {
                                DPAA2_BUS_LOG(DEBUG, "%s Blocked, skipping",
                                              dev->device.name);
-                               rte_bus_remove_device(&rte_fslmc_bus.bus,
+                               rte_bus_remove_device(&rte_fslmc_bus,
                                                &dev->device);
                                continue;
                        }
@@ -1632,7 +1632,7 @@ fslmc_vfio_process_group(void)
                            !is_dpmcp_in_blocklist) {
                                if (dpmcp_count == 1 ||
                                    current_device != dpmcp_count) {
-                                       
rte_bus_remove_device(&rte_fslmc_bus.bus,
+                                       rte_bus_remove_device(&rte_fslmc_bus,
                                                     &dev->device);
                                        continue;
                                }
@@ -1647,7 +1647,7 @@ fslmc_vfio_process_group(void)
                                found_mportal = 1;
                        }
 
-                       rte_bus_remove_device(&rte_fslmc_bus.bus, &dev->device);
+                       rte_bus_remove_device(&rte_fslmc_bus, &dev->device);
                        free(dev);
                        dev = NULL;
                        /* Ideally there is only a single dpmcp, but in case
@@ -1666,26 +1666,26 @@ fslmc_vfio_process_group(void)
         * other devices.
         */
        current_device = 0;
-       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
                if (dev->dev_type == DPAA2_DPRC) {
                        ret = fslmc_process_iodevices(dev);
                        if (ret) {
                                DPAA2_BUS_ERR("Unable to process dprc");
                                return ret;
                        }
-                       rte_bus_remove_device(&rte_fslmc_bus.bus, &dev->device);
+                       rte_bus_remove_device(&rte_fslmc_bus, &dev->device);
                }
        }
 
        current_device = 0;
-       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
                if (dev->dev_type == DPAA2_IO)
                        current_device++;
                if (dev->device.devargs &&
                    dev->device.devargs->policy == RTE_DEV_BLOCKED) {
                        DPAA2_BUS_LOG(DEBUG, "%s Blocked, skipping",
                                      dev->device.name);
-                       rte_bus_remove_device(&rte_fslmc_bus.bus, &dev->device);
+                       rte_bus_remove_device(&rte_fslmc_bus, &dev->device);
                        continue;
                }
                if (rte_eal_process_type() == RTE_PROC_SECONDARY &&
@@ -1693,7 +1693,7 @@ fslmc_vfio_process_group(void)
                    dev->dev_type != DPAA2_CRYPTO &&
                    dev->dev_type != DPAA2_QDMA &&
                    dev->dev_type != DPAA2_IO) {
-                       rte_bus_remove_device(&rte_fslmc_bus.bus, &dev->device);
+                       rte_bus_remove_device(&rte_fslmc_bus, &dev->device);
                        continue;
                }
                switch (dev->dev_type) {
@@ -1735,13 +1735,13 @@ fslmc_vfio_process_group(void)
                        if (!is_dpio_in_blocklist && dpio_count > 1) {
                                if (rte_eal_process_type() == RTE_PROC_SECONDARY
                                    && current_device != dpio_count) {
-                                       
rte_bus_remove_device(&rte_fslmc_bus.bus,
+                                       rte_bus_remove_device(&rte_fslmc_bus,
                                                     &dev->device);
                                        break;
                                }
                                if (rte_eal_process_type() == RTE_PROC_PRIMARY
                                    && current_device == dpio_count) {
-                                       
rte_bus_remove_device(&rte_fslmc_bus.bus,
+                                       rte_bus_remove_device(&rte_fslmc_bus,
                                                     &dev->device);
                                        break;
                                }
@@ -1760,7 +1760,7 @@ fslmc_vfio_process_group(void)
                        /* Unknown - ignore */
                        DPAA2_BUS_DEBUG("Found unknown device (%s)",
                                        dev->device.name);
-                       rte_bus_remove_device(&rte_fslmc_bus.bus, &dev->device);
+                       rte_bus_remove_device(&rte_fslmc_bus, &dev->device);
                        free(dev);
                        dev = NULL;
                }
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c 
b/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c
index a66e55a456..868ed646af 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dprc.c
@@ -49,7 +49,7 @@ rte_dpaa2_create_dprc_device(int vdev_fd __rte_unused,
                return ret;
        }
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_fslmc_bus) {
                /** DPRC is always created before it's children are created.*/
                dev->container = dprc_node;
                if (dev->dev_type == DPAA2_ETH) {
diff --git a/drivers/bus/fslmc/private.h b/drivers/bus/fslmc/private.h
index a0dda4f9d6..20a454c3fc 100644
--- a/drivers/bus/fslmc/private.h
+++ b/drivers/bus/fslmc/private.h
@@ -9,13 +9,6 @@
 
 #include <bus_fslmc_driver.h>
 
-/*
- * FSLMC bus
- */
-struct rte_fslmc_bus {
-       struct rte_bus bus;     /**< Generic Bus object */
-};
-
-extern struct rte_fslmc_bus rte_fslmc_bus;
+extern struct rte_bus rte_fslmc_bus;
 
 #endif /* BUS_FSLMC_PRIVATE_H */
diff --git a/drivers/bus/pci/bsd/pci.c b/drivers/bus/pci/bsd/pci.c
index 78d14ab3ae..c6df31d486 100644
--- a/drivers/bus/pci/bsd/pci.c
+++ b/drivers/bus/pci/bsd/pci.c
@@ -297,20 +297,18 @@ pci_scan_one(int dev_pci_fd, struct pci_conf *conf)
        }
 
        /* device is valid, add in list (sorted) */
-       if (TAILQ_EMPTY(&rte_pci_bus.bus.device_list)) {
-               rte_bus_add_device(&rte_pci_bus.bus, &dev->device);
-       }
-       else {
+       if (TAILQ_EMPTY(&rte_pci_bus.device_list)) {
+               rte_bus_add_device(&rte_pci_bus, &dev->device);
+       } else {
                struct rte_pci_device *dev2 = NULL;
                int ret;
 
-               RTE_BUS_FOREACH_DEV(dev2, &rte_pci_bus.bus) {
+               RTE_BUS_FOREACH_DEV(dev2, &rte_pci_bus) {
                        ret = rte_pci_addr_cmp(&dev->addr, &dev2->addr);
                        if (ret > 0)
                                continue;
                        else if (ret < 0) {
-                               rte_bus_insert_device(&rte_pci_bus.bus, 
&dev2->device,
-                                       &dev->device);
+                               rte_bus_insert_device(&rte_pci_bus, 
&dev2->device, &dev->device);
                        } else { /* already registered */
                                dev2->kdrv = dev->kdrv;
                                dev2->max_vfs = dev->max_vfs;
@@ -322,7 +320,7 @@ pci_scan_one(int dev_pci_fd, struct pci_conf *conf)
                        }
                        return 0;
                }
-               rte_bus_add_device(&rte_pci_bus.bus, &dev->device);
+               rte_bus_add_device(&rte_pci_bus, &dev->device);
        }
 
        return 0;
@@ -378,7 +376,7 @@ rte_pci_scan(void)
                        pci_addr.function = matches[i].pc_sel.pc_func;
                        rte_pci_device_name(&pci_addr, name, sizeof(name));
 
-                       if (rte_bus_device_is_ignored(&rte_pci_bus.bus, name))
+                       if (rte_bus_device_is_ignored(&rte_pci_bus, name))
                                continue;
 
                        if (pci_scan_one(fd, &matches[i]) < 0)
diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c
index cf8a60313b..9aae0a5d14 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
@@ -321,19 +321,18 @@ pci_scan_one(const char *dirname, const struct 
rte_pci_addr *addr)
                return 0;
        }
        /* device is valid, add in list (sorted) */
-       if (TAILQ_EMPTY(&rte_pci_bus.bus.device_list)) {
-               rte_bus_add_device(&rte_pci_bus.bus, &dev->device);
+       if (TAILQ_EMPTY(&rte_pci_bus.device_list)) {
+               rte_bus_add_device(&rte_pci_bus, &dev->device);
        } else {
                struct rte_pci_device *dev2;
 
-               RTE_BUS_FOREACH_DEV(dev2, &rte_pci_bus.bus) {
+               RTE_BUS_FOREACH_DEV(dev2, &rte_pci_bus) {
                        ret = rte_pci_addr_cmp(&dev->addr, &dev2->addr);
                        if (ret > 0)
                                continue;
 
                        if (ret < 0) {
-                               rte_bus_insert_device(&rte_pci_bus.bus, 
&dev2->device,
-                                       &dev->device);
+                               rte_bus_insert_device(&rte_pci_bus, 
&dev2->device, &dev->device);
                        } else { /* already registered */
                                if (!rte_dev_is_probed(&dev2->device)) {
                                        dev2->kdrv = dev->kdrv;
@@ -377,7 +376,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr 
*addr)
                        return 0;
                }
 
-               rte_bus_add_device(&rte_pci_bus.bus, &dev->device);
+               rte_bus_add_device(&rte_pci_bus, &dev->device);
        }
 
        return 0;
@@ -458,7 +457,7 @@ rte_pci_scan(void)
                if (parse_pci_addr_format(e->d_name, sizeof(e->d_name), &addr) 
!= 0)
                        continue;
 
-               if (rte_bus_device_is_ignored(&rte_pci_bus.bus, e->d_name))
+               if (rte_bus_device_is_ignored(&rte_pci_bus, e->d_name))
                        continue;
 
                snprintf(dirname, sizeof(dirname), "%s/%s",
diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c
index 2bdb94a924..fd18b8772b 100644
--- a/drivers/bus/pci/pci_common.c
+++ b/drivers/bus/pci/pci_common.c
@@ -87,7 +87,7 @@ pci_common_set(struct rte_pci_device *dev)
                        dev->name, sizeof(dev->name));
        dev->device.name = dev->name;
 
-       dev->device.devargs = rte_bus_find_devargs(&rte_pci_bus.bus, dev->name);
+       dev->device.devargs = rte_bus_find_devargs(&rte_pci_bus, dev->name);
 
        if (dev->bus_info != NULL ||
                        asprintf(&dev->bus_info, "vendor_id=%"PRIx16", 
device_id=%"PRIx16,
@@ -329,7 +329,7 @@ pci_cleanup(void)
        struct rte_pci_device *dev;
        int error = 0;
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_pci_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_pci_bus) {
                const struct rte_pci_driver *drv;
                int ret = 0;
 
@@ -353,7 +353,7 @@ pci_cleanup(void)
                rte_intr_instance_free(dev->vfio_req_intr_handle);
                dev->vfio_req_intr_handle = NULL;
 
-               rte_bus_remove_device(&rte_pci_bus.bus, &dev->device);
+               rte_bus_remove_device(&rte_pci_bus, &dev->device);
                pci_free(RTE_PCI_DEVICE_INTERNAL(dev));
        }
 
@@ -387,7 +387,7 @@ rte_pci_dump(FILE *f)
 {
        struct rte_pci_device *dev = NULL;
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_pci_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_pci_bus) {
                pci_dump_one_device(f, dev);
        }
 }
@@ -422,7 +422,7 @@ RTE_EXPORT_INTERNAL_SYMBOL(rte_pci_register)
 void
 rte_pci_register(struct rte_pci_driver *driver)
 {
-       rte_bus_add_driver(&rte_pci_bus.bus, &driver->driver);
+       rte_bus_add_driver(&rte_pci_bus, &driver->driver);
 }
 
 /* unregister a driver */
@@ -430,7 +430,7 @@ RTE_EXPORT_INTERNAL_SYMBOL(rte_pci_unregister)
 void
 rte_pci_unregister(struct rte_pci_driver *driver)
 {
-       rte_bus_remove_driver(&rte_pci_bus.bus, &driver->driver);
+       rte_bus_remove_driver(&rte_pci_bus, &driver->driver);
 }
 
 /*
@@ -447,7 +447,7 @@ pci_find_device_by_addr(const void *failure_addr)
 
        check_point = (uint64_t)(uintptr_t)failure_addr;
 
-       RTE_BUS_FOREACH_DEV(pdev, &rte_pci_bus.bus) {
+       RTE_BUS_FOREACH_DEV(pdev, &rte_pci_bus) {
                for (i = 0; i != RTE_DIM(pdev->mem_resource); i++) {
                        start = (uint64_t)(uintptr_t)pdev->mem_resource[i].addr;
                        len = pdev->mem_resource[i].len;
@@ -525,7 +525,7 @@ pci_unplug(struct rte_device *dev)
 
        ret = rte_pci_detach_dev(pdev);
        if (ret == 0) {
-               rte_bus_remove_device(&rte_pci_bus.bus, &pdev->device);
+               rte_bus_remove_device(&rte_pci_bus, &pdev->device);
                rte_devargs_remove(dev->devargs);
                pci_free(RTE_PCI_DEVICE_INTERNAL(pdev));
        }
@@ -582,7 +582,7 @@ rte_pci_get_iommu_class(void)
        bool devices_want_pa = false;
        int iommu_no_va = -1;
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_pci_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_pci_bus) {
                /*
                 * We can check this only once, because the IOMMU hardware is
                 * the same for all of them.
@@ -594,7 +594,7 @@ rte_pci_get_iommu_class(void)
                if (dev->kdrv == RTE_PCI_KDRV_UNKNOWN ||
                    dev->kdrv == RTE_PCI_KDRV_NONE)
                        continue;
-               RTE_BUS_FOREACH_DRV(drv, &rte_pci_bus.bus) {
+               RTE_BUS_FOREACH_DRV(drv, &rte_pci_bus) {
                        enum rte_iova_mode dev_iova_mode;
 
                        if (!pci_bus_match(&drv->driver, &dev->device))
@@ -772,27 +772,25 @@ rte_pci_pasid_set_state(const struct rte_pci_device *dev,
                        offset + RTE_PCI_PASID_CTRL) != sizeof(pasid) ? -1 : 0;
 }
 
-struct rte_pci_bus rte_pci_bus = {
-       .bus = {
-               .allow_multi_probe = true,
-               .scan = rte_pci_scan,
-               .probe = rte_bus_generic_probe,
-               .cleanup = pci_cleanup,
-               .find_device = rte_bus_generic_find_device,
-               .match = pci_bus_match,
-               .probe_device = pci_probe_device,
-               .unplug = pci_unplug,
-               .parse = pci_parse,
-               .dev_compare = pci_dev_compare,
-               .devargs_parse = rte_pci_devargs_parse,
-               .dma_map = pci_dma_map,
-               .dma_unmap = pci_dma_unmap,
-               .get_iommu_class = rte_pci_get_iommu_class,
-               .dev_iterate = rte_pci_dev_iterate,
-               .hot_unplug_handler = pci_hot_unplug_handler,
-               .sigbus_handler = pci_sigbus_handler,
-       },
+struct rte_bus rte_pci_bus = {
+       .allow_multi_probe = true,
+       .scan = rte_pci_scan,
+       .probe = rte_bus_generic_probe,
+       .cleanup = pci_cleanup,
+       .find_device = rte_bus_generic_find_device,
+       .match = pci_bus_match,
+       .probe_device = pci_probe_device,
+       .unplug = pci_unplug,
+       .parse = pci_parse,
+       .dev_compare = pci_dev_compare,
+       .devargs_parse = rte_pci_devargs_parse,
+       .dma_map = pci_dma_map,
+       .dma_unmap = pci_dma_unmap,
+       .get_iommu_class = rte_pci_get_iommu_class,
+       .dev_iterate = rte_pci_dev_iterate,
+       .hot_unplug_handler = pci_hot_unplug_handler,
+       .sigbus_handler = pci_sigbus_handler,
 };
 
-RTE_REGISTER_BUS(pci, rte_pci_bus.bus);
+RTE_REGISTER_BUS(pci, rte_pci_bus);
 RTE_LOG_REGISTER_DEFAULT(pci_bus_logtype, NOTICE);
diff --git a/drivers/bus/pci/pci_params.c b/drivers/bus/pci/pci_params.c
index e308c85ed2..6cbd98b4c8 100644
--- a/drivers/bus/pci/pci_params.c
+++ b/drivers/bus/pci/pci_params.c
@@ -75,7 +75,7 @@ rte_pci_dev_iterate(const struct rte_bus *bus __rte_unused,
                        return NULL;
                }
        }
-       dev = rte_bus_generic_find_device(&rte_pci_bus.bus, start, 
pci_dev_match, kvargs);
+       dev = rte_bus_generic_find_device(&rte_pci_bus, start, pci_dev_match, 
kvargs);
        rte_kvargs_free(kvargs);
        return dev;
 }
diff --git a/drivers/bus/pci/private.h b/drivers/bus/pci/private.h
index c54ea7b9d8..8103c32881 100644
--- a/drivers/bus/pci/private.h
+++ b/drivers/bus/pci/private.h
@@ -29,14 +29,7 @@ extern int pci_bus_logtype;
 #define RTE_PCI_DEVICE_INTERNAL_CONST(ptr) \
        container_of(ptr, const struct rte_pci_device_internal, device)
 
-/**
- * Structure describing the PCI bus
- */
-struct rte_pci_bus {
-       struct rte_bus bus;               /**< Inherit the generic class */
-};
-
-extern struct rte_pci_bus rte_pci_bus;
+extern struct rte_bus rte_pci_bus;
 
 struct rte_pci_driver;
 struct rte_pci_device;
diff --git a/drivers/bus/pci/windows/pci.c b/drivers/bus/pci/windows/pci.c
index 3b3f97da27..7b51301d1e 100644
--- a/drivers/bus/pci/windows/pci.c
+++ b/drivers/bus/pci/windows/pci.c
@@ -382,7 +382,7 @@ pci_scan_one(HDEVINFO dev_info, PSP_DEVINFO_DATA 
device_info_data)
                goto end;
 
        rte_pci_device_name(&addr, name, sizeof(name));
-       if (rte_bus_device_is_ignored(&rte_pci_bus.bus, name)) {
+       if (rte_bus_device_is_ignored(&rte_pci_bus, name)) {
                /*
                 * We won't add this device, but we want to continue
                 * looking for supported devices
@@ -430,18 +430,17 @@ pci_scan_one(HDEVINFO dev_info, PSP_DEVINFO_DATA 
device_info_data)
        }
 
        /* device is valid, add in list (sorted) */
-       if (TAILQ_EMPTY(&rte_pci_bus.bus.device_list)) {
-               rte_bus_add_device(&rte_pci_bus.bus, &dev->device);
+       if (TAILQ_EMPTY(&rte_pci_bus.device_list)) {
+               rte_bus_add_device(&rte_pci_bus, &dev->device);
        } else {
                struct rte_pci_device *dev2 = NULL;
 
-               RTE_BUS_FOREACH_DEV(dev2, &rte_pci_bus.bus) {
+               RTE_BUS_FOREACH_DEV(dev2, &rte_pci_bus) {
                        ret = rte_pci_addr_cmp(&dev->addr, &dev2->addr);
                        if (ret > 0) {
                                continue;
                        } else if (ret < 0) {
-                               rte_bus_insert_device(&rte_pci_bus.bus, 
&dev2->device,
-                                       &dev->device);
+                               rte_bus_insert_device(&rte_pci_bus, 
&dev2->device, &dev->device);
                        } else { /* already registered */
                                dev2->kdrv = dev->kdrv;
                                dev2->max_vfs = dev->max_vfs;
@@ -451,7 +450,7 @@ pci_scan_one(HDEVINFO dev_info, PSP_DEVINFO_DATA 
device_info_data)
                        }
                        return 0;
                }
-               rte_bus_add_device(&rte_pci_bus.bus, &dev->device);
+               rte_bus_add_device(&rte_pci_bus, &dev->device);
        }
 
        return 0;
diff --git a/drivers/bus/platform/bus_platform_driver.h 
b/drivers/bus/platform/bus_platform_driver.h
index 3ac405a201..e4dcbacf5e 100644
--- a/drivers/bus/platform/bus_platform_driver.h
+++ b/drivers/bus/platform/bus_platform_driver.h
@@ -24,7 +24,6 @@ extern "C" {
 #endif
 
 /* Forward declarations */
-struct rte_platform_bus;
 struct rte_platform_device;
 struct rte_platform_driver;
 
diff --git a/drivers/bus/platform/platform.c b/drivers/bus/platform/platform.c
index 4492ed62ec..170a2e03d0 100644
--- a/drivers/bus/platform/platform.c
+++ b/drivers/bus/platform/platform.c
@@ -29,18 +29,20 @@
 
 #define PLATFORM_BUS_DEVICES_PATH "/sys/bus/platform/devices"
 
+static struct rte_bus platform_bus;
+
 RTE_EXPORT_INTERNAL_SYMBOL(rte_platform_register)
 void
 rte_platform_register(struct rte_platform_driver *pdrv)
 {
-       rte_bus_add_driver(&platform_bus.bus, &pdrv->driver);
+       rte_bus_add_driver(&platform_bus, &pdrv->driver);
 }
 
 RTE_EXPORT_INTERNAL_SYMBOL(rte_platform_unregister)
 void
 rte_platform_unregister(struct rte_platform_driver *pdrv)
 {
-       rte_bus_remove_driver(&platform_bus.bus, &pdrv->driver);
+       rte_bus_remove_driver(&platform_bus, &pdrv->driver);
 }
 
 static int
@@ -56,11 +58,11 @@ dev_add(const char *dev_name)
 
        rte_strscpy(pdev->name, dev_name, sizeof(pdev->name));
        pdev->device.name = pdev->name;
-       pdev->device.devargs = rte_bus_find_devargs(&platform_bus.bus, 
dev_name);
+       pdev->device.devargs = rte_bus_find_devargs(&platform_bus, dev_name);
        snprintf(path, sizeof(path), PLATFORM_BUS_DEVICES_PATH "/%s/numa_node", 
dev_name);
        pdev->device.numa_node = eal_parse_sysfs_value(path, &val) ? 
rte_socket_id() : val;
 
-       RTE_BUS_FOREACH_DEV(tmp, &platform_bus.bus) {
+       RTE_BUS_FOREACH_DEV(tmp, &platform_bus) {
                if (!strcmp(tmp->name, pdev->name)) {
                        PLATFORM_LOG_LINE(INFO, "device %s already added", 
pdev->name);
 
@@ -72,7 +74,7 @@ dev_add(const char *dev_name)
                }
        }
 
-       rte_bus_add_device(&platform_bus.bus, &pdev->device);
+       rte_bus_add_device(&platform_bus, &pdev->device);
 
        PLATFORM_LOG_LINE(INFO, "adding device %s to the list", dev_name);
 
@@ -135,7 +137,7 @@ platform_bus_scan(void)
                if (dev_name[0] == '.')
                        continue;
 
-               if (rte_bus_device_is_ignored(&platform_bus.bus, dev_name))
+               if (rte_bus_device_is_ignored(&platform_bus, dev_name))
                        continue;
 
                if (!dev_is_bound_vfio_platform(dev_name))
@@ -440,7 +442,7 @@ platform_bus_parse(const char *name, void *addr)
 
        rte_strscpy(pdev.name, name, sizeof(pdev.name));
 
-       RTE_BUS_FOREACH_DRV(pdrv, &platform_bus.bus) {
+       RTE_BUS_FOREACH_DRV(pdrv, &platform_bus) {
                if (platform_bus_match(&pdrv->driver, &pdev.device))
                        break;
        }
@@ -482,7 +484,7 @@ platform_bus_get_iommu_class(void)
        const struct rte_platform_driver *pdrv;
        struct rte_platform_device *pdev;
 
-       RTE_BUS_FOREACH_DEV(pdev, &platform_bus.bus) {
+       RTE_BUS_FOREACH_DEV(pdev, &platform_bus) {
                if (!rte_dev_is_probed(&pdev->device))
                        continue;
                pdrv = RTE_BUS_DRIVER(pdev->device.driver, *pdrv);
@@ -498,8 +500,8 @@ platform_bus_cleanup(void)
 {
        struct rte_platform_device *pdev;
 
-       RTE_BUS_FOREACH_DEV(pdev, &platform_bus.bus) {
-               rte_bus_remove_device(&platform_bus.bus, &pdev->device);
+       RTE_BUS_FOREACH_DEV(pdev, &platform_bus) {
+               rte_bus_remove_device(&platform_bus, &pdev->device);
                if (!rte_dev_is_probed(&pdev->device))
                        continue;
                platform_bus_unplug(&pdev->device);
@@ -508,22 +510,20 @@ platform_bus_cleanup(void)
        return 0;
 }
 
-struct rte_platform_bus platform_bus = {
-       .bus = {
-               .scan = platform_bus_scan,
-               .probe = rte_bus_generic_probe,
-               .find_device = rte_bus_generic_find_device,
-               .match = platform_bus_match,
-               .probe_device = platform_bus_probe_device,
-               .unplug = platform_bus_unplug,
-               .parse = platform_bus_parse,
-               .dma_map = platform_bus_dma_map,
-               .dma_unmap = platform_bus_dma_unmap,
-               .get_iommu_class = platform_bus_get_iommu_class,
-               .dev_iterate = rte_bus_generic_dev_iterate,
-               .cleanup = platform_bus_cleanup,
-       },
+static struct rte_bus platform_bus = {
+       .scan = platform_bus_scan,
+       .probe = rte_bus_generic_probe,
+       .find_device = rte_bus_generic_find_device,
+       .match = platform_bus_match,
+       .probe_device = platform_bus_probe_device,
+       .unplug = platform_bus_unplug,
+       .parse = platform_bus_parse,
+       .dma_map = platform_bus_dma_map,
+       .dma_unmap = platform_bus_dma_unmap,
+       .get_iommu_class = platform_bus_get_iommu_class,
+       .dev_iterate = rte_bus_generic_dev_iterate,
+       .cleanup = platform_bus_cleanup,
 };
 
-RTE_REGISTER_BUS(platform, platform_bus.bus);
+RTE_REGISTER_BUS(platform, platform_bus);
 RTE_LOG_REGISTER_DEFAULT(platform_bus_logtype, NOTICE);
diff --git a/drivers/bus/platform/private.h b/drivers/bus/platform/private.h
index bf5d75df03..18d42d43d8 100644
--- a/drivers/bus/platform/private.h
+++ b/drivers/bus/platform/private.h
@@ -14,15 +14,6 @@
 
 #include "bus_platform_driver.h"
 
-extern struct rte_platform_bus platform_bus;
-
-/*
- * Structure describing platform bus.
- */
-struct rte_platform_bus {
-       struct rte_bus bus; /* Core bus */
-};
-
 extern int platform_bus_logtype;
 #define RTE_LOGTYPE_PLATFORM_BUS platform_bus_logtype
 #define PLATFORM_LOG_LINE(level, ...) \
diff --git a/drivers/bus/uacce/uacce.c b/drivers/bus/uacce/uacce.c
index 4fc4d522a8..73c6819e66 100644
--- a/drivers/bus/uacce/uacce.c
+++ b/drivers/bus/uacce/uacce.c
@@ -34,15 +34,8 @@
 /* Support -a uacce:device-name when start DPDK application. */
 #define UACCE_DEV_PREFIX       "uacce:"
 
-/*
- * Structure describing the UACCE bus.
- */
-struct rte_uacce_bus {
-       struct rte_bus bus;                         /* Inherit the generic 
class. */
-};
-
 /* Forward declaration of UACCE bus. */
-static struct rte_uacce_bus uacce_bus;
+static struct rte_bus uacce_bus;
 
 
 extern int uacce_bus_logtype;
@@ -206,7 +199,7 @@ uacce_scan_one(const char *dev_name)
                return -ENOMEM;
 
        dev->device.name = dev->name;
-       dev->device.devargs = rte_bus_find_devargs(&uacce_bus.bus, dev_name);
+       dev->device.devargs = rte_bus_find_devargs(&uacce_bus, dev_name);
        snprintf(dev->name, sizeof(dev->name), "%s", dev_name);
        snprintf(dev->dev_root, sizeof(dev->dev_root), "%s/%s",
                 UACCE_BUS_CLASS_PATH, dev_name);
@@ -230,7 +223,7 @@ uacce_scan_one(const char *dev_name)
        if (ret != 0)
                goto err;
 
-       rte_bus_add_device(&uacce_bus.bus, &dev->device);
+       rte_bus_add_device(&uacce_bus, &dev->device);
        return 0;
 
 err:
@@ -260,7 +253,7 @@ uacce_scan(void)
                        continue;
                }
 
-               if (rte_bus_device_is_ignored(&uacce_bus.bus, e->d_name))
+               if (rte_bus_device_is_ignored(&uacce_bus, e->d_name))
                        continue;
 
                if (uacce_scan_one(e->d_name) < 0)
@@ -378,7 +371,7 @@ uacce_cleanup(void)
        struct rte_uacce_device *dev;
        int error = 0;
 
-       RTE_BUS_FOREACH_DEV(dev, &uacce_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &uacce_bus) {
                const struct rte_uacce_driver *dr;
                int ret = 0;
 
@@ -396,7 +389,7 @@ uacce_cleanup(void)
                dev->device.driver = NULL;
 
 free:
-               rte_bus_remove_device(&uacce_bus.bus, &dev->device);
+               rte_bus_remove_device(&uacce_bus, &dev->device);
                free(dev);
        }
 
@@ -430,7 +423,7 @@ uacce_unplug(struct rte_device *dev)
 
        ret = uacce_detach_dev(uacce_dev);
        if (ret == 0) {
-               rte_bus_remove_device(&uacce_bus.bus, &uacce_dev->device);
+               rte_bus_remove_device(&uacce_bus, &uacce_dev->device);
                rte_devargs_remove(dev->devargs);
                free(uacce_dev);
        }
@@ -549,29 +542,27 @@ RTE_EXPORT_INTERNAL_SYMBOL(rte_uacce_register)
 void
 rte_uacce_register(struct rte_uacce_driver *driver)
 {
-       rte_bus_add_driver(&uacce_bus.bus, &driver->driver);
+       rte_bus_add_driver(&uacce_bus, &driver->driver);
 }
 
 RTE_EXPORT_INTERNAL_SYMBOL(rte_uacce_unregister)
 void
 rte_uacce_unregister(struct rte_uacce_driver *driver)
 {
-       rte_bus_remove_driver(&uacce_bus.bus, &driver->driver);
+       rte_bus_remove_driver(&uacce_bus, &driver->driver);
 }
 
-static struct rte_uacce_bus uacce_bus = {
-       .bus = {
-               .scan = uacce_scan,
-               .probe = rte_bus_generic_probe,
-               .cleanup = uacce_cleanup,
-               .match = uacce_bus_match,
-               .probe_device = uacce_probe_device,
-               .unplug = uacce_unplug,
-               .find_device = rte_bus_generic_find_device,
-               .parse = uacce_parse,
-               .dev_iterate = rte_bus_generic_dev_iterate,
-       },
+static struct rte_bus uacce_bus = {
+       .scan = uacce_scan,
+       .probe = rte_bus_generic_probe,
+       .cleanup = uacce_cleanup,
+       .match = uacce_bus_match,
+       .probe_device = uacce_probe_device,
+       .unplug = uacce_unplug,
+       .find_device = rte_bus_generic_find_device,
+       .parse = uacce_parse,
+       .dev_iterate = rte_bus_generic_dev_iterate,
 };
 
-RTE_REGISTER_BUS(uacce, uacce_bus.bus);
+RTE_REGISTER_BUS(uacce, uacce_bus);
 RTE_LOG_REGISTER_DEFAULT(uacce_bus_logtype, NOTICE);
diff --git a/drivers/bus/vmbus/linux/vmbus_bus.c 
b/drivers/bus/vmbus/linux/vmbus_bus.c
index 6268a14d40..0af10f6a69 100644
--- a/drivers/bus/vmbus/linux/vmbus_bus.c
+++ b/drivers/bus/vmbus/linux/vmbus_bus.c
@@ -39,8 +39,6 @@ static const rte_uuid_t vmbus_nic_uuid = {
        0xf2, 0xd2, 0xf9, 0x65, 0xed, 0xe
 };
 
-extern struct rte_vmbus_bus rte_vmbus_bus;
-
 /* Read sysfs file to get UUID */
 static int
 parse_sysfs_uuid(const char *filename, rte_uuid_t uu)
@@ -332,7 +330,7 @@ vmbus_scan_one(const char *name)
                dev->monitor_id = UINT8_MAX;
        }
 
-       dev->device.devargs = rte_bus_find_devargs(&rte_vmbus_bus.bus, 
dev_name);
+       dev->device.devargs = rte_bus_find_devargs(&rte_vmbus_bus, dev_name);
 
        dev->device.numa_node = SOCKET_ID_ANY;
        if (vmbus_use_numa(dev)) {
@@ -356,7 +354,7 @@ vmbus_scan_one(const char *name)
        /* device is valid, add in list (sorted) */
        VMBUS_LOG(DEBUG, "Adding vmbus device %s", name);
 
-       RTE_BUS_FOREACH_DEV(dev2, &rte_vmbus_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev2, &rte_vmbus_bus) {
                int ret;
 
                ret = rte_uuid_compare(dev->device_id, dev2->device_id);
@@ -364,7 +362,7 @@ vmbus_scan_one(const char *name)
                        continue;
 
                if (ret < 0) {
-                       rte_bus_insert_device(&rte_vmbus_bus.bus, 
&dev2->device, &dev->device);
+                       rte_bus_insert_device(&rte_vmbus_bus, &dev2->device, 
&dev->device);
                } else { /* already registered */
                        VMBUS_LOG(NOTICE,
                                "%s already registered", name);
@@ -374,7 +372,7 @@ vmbus_scan_one(const char *name)
                return 0;
        }
 
-       rte_bus_add_device(&rte_vmbus_bus.bus, &dev->device);
+       rte_bus_add_device(&rte_vmbus_bus, &dev->device);
        return 0;
 error:
        VMBUS_LOG(DEBUG, "failed");
diff --git a/drivers/bus/vmbus/private.h b/drivers/bus/vmbus/private.h
index 6abb97c607..6efac86b77 100644
--- a/drivers/bus/vmbus/private.h
+++ b/drivers/bus/vmbus/private.h
@@ -15,14 +15,7 @@
 #include <rte_eal_paging.h>
 #include <rte_vmbus_reg.h>
 
-/**
- * Structure describing the VM bus
- */
-struct rte_vmbus_bus {
-       struct rte_bus bus;               /**< Inherit the generic class */
-};
-
-extern struct rte_vmbus_bus rte_vmbus_bus;
+extern struct rte_bus rte_vmbus_bus;
 
 extern int vmbus_logtype_bus;
 #define RTE_LOGTYPE_VMBUS_BUS vmbus_logtype_bus
diff --git a/drivers/bus/vmbus/vmbus_common.c b/drivers/bus/vmbus/vmbus_common.c
index 2b1730afc2..01573927ce 100644
--- a/drivers/bus/vmbus/vmbus_common.c
+++ b/drivers/bus/vmbus/vmbus_common.c
@@ -23,8 +23,6 @@
 
 #include "private.h"
 
-extern struct rte_vmbus_bus rte_vmbus_bus;
-
 /* map a particular resource from a file */
 void *
 vmbus_map_resource(void *requested_addr, int fd, off_t offset, size_t size,
@@ -128,7 +126,7 @@ RTE_EXPORT_SYMBOL(rte_vmbus_probe)
 int
 rte_vmbus_probe(void)
 {
-       return rte_bus_generic_probe(&rte_vmbus_bus.bus);
+       return rte_bus_generic_probe(&rte_vmbus_bus);
 }
 
 static int
@@ -137,7 +135,7 @@ rte_vmbus_cleanup(void)
        struct rte_vmbus_device *dev;
        int error = 0;
 
-       RTE_BUS_FOREACH_DEV(dev, &rte_vmbus_bus.bus) {
+       RTE_BUS_FOREACH_DEV(dev, &rte_vmbus_bus) {
                const struct rte_vmbus_driver *drv;
                int ret;
 
@@ -154,7 +152,7 @@ rte_vmbus_cleanup(void)
                rte_vmbus_unmap_device(dev);
 
                dev->device.driver = NULL;
-               rte_bus_remove_device(&rte_vmbus_bus.bus, &dev->device);
+               rte_bus_remove_device(&rte_vmbus_bus, &dev->device);
                free(dev);
        }
 
@@ -194,7 +192,7 @@ rte_vmbus_register(struct rte_vmbus_driver *driver)
        VMBUS_LOG(DEBUG,
                "Registered driver %s", driver->driver.name);
 
-       rte_bus_add_driver(&rte_vmbus_bus.bus, &driver->driver);
+       rte_bus_add_driver(&rte_vmbus_bus, &driver->driver);
 }
 
 /* unregister vmbus driver */
@@ -202,22 +200,20 @@ RTE_EXPORT_INTERNAL_SYMBOL(rte_vmbus_unregister)
 void
 rte_vmbus_unregister(struct rte_vmbus_driver *driver)
 {
-       rte_bus_remove_driver(&rte_vmbus_bus.bus, &driver->driver);
+       rte_bus_remove_driver(&rte_vmbus_bus, &driver->driver);
 }
 
 /* VMBUS doesn't support hotplug */
-struct rte_vmbus_bus rte_vmbus_bus = {
-       .bus = {
-               .scan = rte_vmbus_scan,
-               .probe = rte_bus_generic_probe,
-               .cleanup = rte_vmbus_cleanup,
-               .find_device = rte_bus_generic_find_device,
-               .match = vmbus_bus_match,
-               .probe_device = vmbus_probe_device,
-               .parse = vmbus_parse,
-               .dev_compare = vmbus_dev_compare,
-       },
+struct rte_bus rte_vmbus_bus = {
+       .scan = rte_vmbus_scan,
+       .probe = rte_bus_generic_probe,
+       .cleanup = rte_vmbus_cleanup,
+       .find_device = rte_bus_generic_find_device,
+       .match = vmbus_bus_match,
+       .probe_device = vmbus_probe_device,
+       .parse = vmbus_parse,
+       .dev_compare = vmbus_dev_compare,
 };
 
-RTE_REGISTER_BUS(vmbus, rte_vmbus_bus.bus);
+RTE_REGISTER_BUS(vmbus, rte_vmbus_bus);
 RTE_LOG_REGISTER_DEFAULT(vmbus_logtype_bus, NOTICE);
-- 
2.53.0

Reply via email to