From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f47.google.com (mail-wm0-f47.google.com [74.125.82.47]) by dpdk.org (Postfix) with ESMTP id 90F4C2FDD for ; Wed, 5 Jul 2017 01:55:39 +0200 (CEST) Received: by mail-wm0-f47.google.com with SMTP id 62so207780569wmw.1 for ; Tue, 04 Jul 2017 16:55:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=ITbeQJ/IDqtoA4PSN0s6kN9AN69Z03uCUQanEl0Fbxw=; b=H+4SnVLGVWGPLMflodeo+4pmPfnSeLBaI4SB3W56ZcQH1AJsuPulJ6p0ia7RMIujmf JkdhOEuXQm9BqeIP1ECSeFcsIVttq5L0cGmadt6CiofZhd4Ppp+ql+iJuT3QeBl/UKTq WhqkNUhGFr8rkv8RnDAIjbR7IZ1T4Ww48RCGfXuoA0/RsTSpjEWu2qhV6Vn+96nnfzir o2CWf0gK++dvQDU+tdtFnB244n7XVLBPMIe6YV3vuD+K4B8hq/i+a57D+HIeUHab+iTs ajGG7DRsI896SvJ+It7XB2a/Kg//zwqLw3FRKVVl7DcXN5YAEL30GMrcUDbuakgM4O78 9n8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=ITbeQJ/IDqtoA4PSN0s6kN9AN69Z03uCUQanEl0Fbxw=; b=mQLib8QJCQqU/2l2TSB+/DQlcumZuIoGWiVVo8D2/KQ8/70wPUVyCfBiqQm+v8Cqsx M7Io6zcc/SK2ZaIXNVneH4barHi8jLtpAM36O8EAv//QrLXvOytuPd8xMURLrF4JRD+5 NyLt2yINRlSWqtoI4zj8A29wK4TowwqGiKNjLum1Gr3zEd/fiM/uufKh2Hvdk6oUS8ls BBgL9XslmgoKrhl2dN0vjzswC5YmSuYM4kbFuOFS3ADhY1H+IbWZ4WbSPylC4HcnSJiU 68PPnExxDlYWxaJj2NJRq9Bv4VioFVI7hUO1YytBZCXbB7gzFTVKSMnRzvWnh8eg/mzI +ViA== X-Gm-Message-State: AKS2vOw1EXaClLyfE+r71pNaWEDKeYUkmnkcwaZgC0sbOIqzZt+M0bOj TkeNHhWSW63vvH8JxzA= X-Received: by 10.28.211.132 with SMTP id k126mr30787960wmg.109.1499212538887; Tue, 04 Jul 2017 16:55:38 -0700 (PDT) Received: from bidouze.dev.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id 19sm23406533wrx.26.2017.07.04.16.55.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 04 Jul 2017 16:55:37 -0700 (PDT) From: Gaetan Rivet To: dev@dpdk.org Cc: Thomas Monjalon Date: Wed, 5 Jul 2017 01:55:18 +0200 Message-Id: <1e7116a3deaa5c9280b765e29fec355b8ad0165b.1499211317.git.gaetan.rivet@6wind.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: References: In-Reply-To: References: Subject: [dpdk-dev] [PATCH v7 1/6] bus: fix driver registration X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Jul 2017 23:55:40 -0000 From: Thomas Monjalon The bus name was stored with embedded double quotes. Indeed the bus name is given with a string in a macro, which is not used elsewhere. These macros are useless because the buses are drivers, so they must not have any API for the application writer. The registration can be done with a hardcoded value without quotes. There is another (small) benefit of not using macros for driver names: it is to have a meaningful constructor function name. For instance, it was businitfn_PCI_BUS_NAME instead of businitfn_pci. The bus registration macro is also changed to use the new RTE_INIT_PRIO macro, similar to RTE_INIT used for other drivers. The priority is the highest (101) in order to be sure that the bus driver is registered before its device drivers. Fixes: 0fd1a0eaae19 ("pci: add bus driver") Fixes: fea892e35f21 ("bus/vdev: use standard bus registration") Fixes: 7e7df6d0a41d ("bus/fslmc: introduce fsl-mc bus driver") Signed-off-by: Thomas Monjalon --- drivers/bus/fslmc/fslmc_bus.c | 2 +- drivers/bus/fslmc/rte_fslmc.h | 3 --- lib/librte_eal/common/eal_common_pci.c | 2 +- lib/librte_eal/common/eal_common_vdev.c | 2 +- lib/librte_eal/common/include/rte_bus.h | 3 ++- lib/librte_eal/common/include/rte_eal.h | 3 +++ lib/librte_eal/common/include/rte_pci.h | 3 --- lib/librte_eal/common/include/rte_vdev.h | 2 -- 8 files changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c index 1e3bbee..f9e2211 100644 --- a/drivers/bus/fslmc/fslmc_bus.c +++ b/drivers/bus/fslmc/fslmc_bus.c @@ -161,4 +161,4 @@ struct rte_fslmc_bus rte_fslmc_bus = { .driver_list = TAILQ_HEAD_INITIALIZER(rte_fslmc_bus.driver_list), }; -RTE_REGISTER_BUS(FSLMC_BUS_NAME, rte_fslmc_bus.bus); +RTE_REGISTER_BUS(fslmc, rte_fslmc_bus.bus); diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h index 040ab95..8f35278 100644 --- a/drivers/bus/fslmc/rte_fslmc.h +++ b/drivers/bus/fslmc/rte_fslmc.h @@ -56,9 +56,6 @@ extern "C" { #include #include -/** Name of FSLMC Bus */ -#define FSLMC_BUS_NAME "FSLMC" - struct rte_dpaa2_driver; /* DPAA2 Device and Driver lists for FSLMC bus */ diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c index 5ee100e..2c99049 100644 --- a/lib/librte_eal/common/eal_common_pci.c +++ b/lib/librte_eal/common/eal_common_pci.c @@ -549,4 +549,4 @@ struct rte_pci_bus rte_pci_bus = { .driver_list = TAILQ_HEAD_INITIALIZER(rte_pci_bus.driver_list), }; -RTE_REGISTER_BUS(PCI_BUS_NAME, rte_pci_bus.bus); +RTE_REGISTER_BUS(pci, rte_pci_bus.bus); diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c index baf3c5b..3bad0c4 100644 --- a/lib/librte_eal/common/eal_common_vdev.c +++ b/lib/librte_eal/common/eal_common_vdev.c @@ -374,4 +374,4 @@ static struct rte_bus rte_vdev_bus = { .unplug = vdev_unplug, }; -RTE_REGISTER_BUS(VIRTUAL_BUS_NAME, rte_vdev_bus); +RTE_REGISTER_BUS(vdev, rte_vdev_bus); diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h index 2f1c911..773b0d7 100644 --- a/lib/librte_eal/common/include/rte_bus.h +++ b/lib/librte_eal/common/include/rte_bus.h @@ -256,7 +256,8 @@ struct rte_bus *rte_bus_find_by_name(const char *busname); * The constructor has higher priority than PMD constructors. */ #define RTE_REGISTER_BUS(nm, bus) \ -static void __attribute__((constructor(101), used)) businitfn_ ##nm(void) \ +RTE_INIT_PRIO(businitfn_ ##nm, 101); \ +static void businitfn_ ##nm(void) \ {\ (bus).name = RTE_STR(nm);\ rte_bus_register(&bus); \ diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h index abf020b..6b7c5ca 100644 --- a/lib/librte_eal/common/include/rte_eal.h +++ b/lib/librte_eal/common/include/rte_eal.h @@ -286,6 +286,9 @@ static inline int rte_gettid(void) #define RTE_INIT(func) \ static void __attribute__((constructor, used)) func(void) +#define RTE_INIT_PRIO(func, prio) \ +static void __attribute__((constructor(prio), used)) func(void) + #ifdef __cplusplus } #endif diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h index 0284a62..7863f94 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -77,9 +77,6 @@ const char *pci_get_sysfs_path(void); /** Maximum number of PCI resources. */ #define PCI_MAX_RESOURCE 6 -/** Name of PCI Bus */ -#define PCI_BUS_NAME "PCI" - /* Forward declarations */ struct rte_pci_device; struct rte_pci_driver; diff --git a/lib/librte_eal/common/include/rte_vdev.h b/lib/librte_eal/common/include/rte_vdev.h index 2d02c68..e6b678e 100644 --- a/lib/librte_eal/common/include/rte_vdev.h +++ b/lib/librte_eal/common/include/rte_vdev.h @@ -41,8 +41,6 @@ extern "C" { #include #include -#define VIRTUAL_BUS_NAME "virtual" - struct rte_vdev_device { TAILQ_ENTRY(rte_vdev_device) next; /**< Next attached vdev */ struct rte_device device; /**< Inherit core device */ -- 2.1.4