From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8A9264625B; Tue, 18 Feb 2025 16:37:57 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 79F9140653; Tue, 18 Feb 2025 16:37:57 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 71CD140652 for ; Tue, 18 Feb 2025 16:37:56 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1739893076; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=o03yEeznxmqnVcNpfukGCaghzNONrW1lwmKXBf18xog=; b=fvjDZwJPFYx9VsHYtIcKObBEuSvn+/kuKtXUx+/ZskN7immake5lJpnVuCsM2r6f4Xw/HJ kM3nsRxRPxIcfqjjR8AX+Zu7/w/9/ekdJb9kp+2PSbJonpfo5uTGcoJpagGk3DZo5w7DPi 3AQTw3gdWnny/VyAH18FjZIL+Jc19fc= Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-449-PjE02we2Mn-CGGabUEgwTw-1; Tue, 18 Feb 2025 10:37:52 -0500 X-MC-Unique: PjE02we2Mn-CGGabUEgwTw-1 X-Mimecast-MFC-AGG-ID: PjE02we2Mn-CGGabUEgwTw_1739893071 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 2786319039C2; Tue, 18 Feb 2025 15:37:51 +0000 (UTC) Received: from dmarchan.lan (unknown [10.44.32.171]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 62AD71800359; Tue, 18 Feb 2025 15:37:48 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: thomas@monjalon.net, bruce.richardson@intel.com, andremue@linux.microsoft.com, Nagadheeraj Rottela , Srikanth Jampala , Fan Zhang , Ashish Gupta Subject: [PATCH v3 03/10] drivers: remove weak symbols in Nitrox drivers Date: Tue, 18 Feb 2025 16:37:17 +0100 Message-ID: <20250218153730.773836-4-david.marchand@redhat.com> In-Reply-To: <20250218153730.773836-1-david.marchand@redhat.com> References: <20250207083252.3131588-1-david.marchand@redhat.com> <20250218153730.773836-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: v46MLkO3eGzL4vIBTPg1F6VGJaflQOTI5w19H_QsZL4_1739893071 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Make compress and crypto drivers register to the common driver. Remove (unneeded) include_directories(). Signed-off-by: David Marchand --- drivers/common/nitrox/meson.build | 3 -- drivers/common/nitrox/nitrox_device.c | 75 ++++++++++----------------- drivers/common/nitrox/nitrox_device.h | 16 ++++++ drivers/common/nitrox/version.map | 1 + drivers/compress/nitrox/meson.build | 2 - drivers/compress/nitrox/nitrox_comp.c | 6 +++ drivers/crypto/nitrox/meson.build | 2 - drivers/crypto/nitrox/nitrox_sym.c | 6 +++ 8 files changed, 57 insertions(+), 54 deletions(-) diff --git a/drivers/common/nitrox/meson.build b/drivers/common/nitrox/meson.build index f3cb42f006..115dd8de4d 100644 --- a/drivers/common/nitrox/meson.build +++ b/drivers/common/nitrox/meson.build @@ -14,6 +14,3 @@ sources += files( 'nitrox_logs.c', 'nitrox_qp.c', ) - -includes += include_directories('../../crypto/nitrox') -includes += include_directories('../../compress/nitrox') diff --git a/drivers/common/nitrox/nitrox_device.c b/drivers/common/nitrox/nitrox_device.c index 39edc440a7..6cd57faaa4 100644 --- a/drivers/common/nitrox/nitrox_device.c +++ b/drivers/common/nitrox/nitrox_device.c @@ -6,8 +6,6 @@ #include "nitrox_device.h" #include "nitrox_hal.h" -#include "nitrox_sym.h" -#include "nitrox_comp.h" #define PCI_VENDOR_ID_CAVIUM 0x177d #define NITROX_V_PCI_VF_DEV_ID 0x13 @@ -63,11 +61,21 @@ ndev_release(struct nitrox_device *ndev) rte_free(ndev); } +TAILQ_HEAD(ndrv_list, nitrox_driver); +static struct ndrv_list ndrv_list = TAILQ_HEAD_INITIALIZER(ndrv_list); + +void +nitrox_register_driver(struct nitrox_driver *ndrv) +{ + TAILQ_INSERT_TAIL(&ndrv_list, ndrv, next); +} + static int nitrox_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, struct rte_pci_device *pdev) { struct nitrox_device *ndev; + struct nitrox_driver *ndrv; int err = -1; /* Nitrox CSR space */ @@ -79,19 +87,21 @@ nitrox_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, return -ENOMEM; ndev_init(ndev, pdev); - err = nitrox_sym_pmd_create(ndev); - if (err) - goto sym_pmd_err; - - err = nitrox_comp_pmd_create(ndev); - if (err) - goto comp_pmd_err; + TAILQ_FOREACH(ndrv, &ndrv_list, next) { + err = ndrv->create(ndev); + if (err) + goto drv_err; + } return 0; -comp_pmd_err: - nitrox_sym_pmd_destroy(ndev); -sym_pmd_err: +drv_err: + ndrv = TAILQ_PREV(ndrv, ndrv_list, next); + while (ndrv != NULL) { + ndrv->destroy(ndev); + ndrv = TAILQ_PREV(ndrv, ndrv_list, next); + } + ndev_release(ndev); return err; } @@ -100,19 +110,18 @@ static int nitrox_pci_remove(struct rte_pci_device *pdev) { struct nitrox_device *ndev; + struct nitrox_driver *ndrv; int err; ndev = find_ndev(pdev); if (!ndev) return -ENODEV; - err = nitrox_sym_pmd_destroy(ndev); - if (err) - return err; - - err = nitrox_comp_pmd_destroy(ndev); - if (err) - return err; + TAILQ_FOREACH(ndrv, &ndrv_list, next) { + err = ndrv->destroy(ndev); + if (err) + return err; + } ndev_release(ndev); return 0; @@ -133,33 +142,5 @@ static struct rte_pci_driver nitrox_pmd = { .remove = nitrox_pci_remove, }; -__rte_weak int -nitrox_sym_pmd_create(struct nitrox_device *ndev) -{ - RTE_SET_USED(ndev); - return 0; -} - -__rte_weak int -nitrox_sym_pmd_destroy(struct nitrox_device *ndev) -{ - RTE_SET_USED(ndev); - return 0; -} - -__rte_weak int -nitrox_comp_pmd_create(struct nitrox_device *ndev) -{ - RTE_SET_USED(ndev); - return 0; -} - -__rte_weak int -nitrox_comp_pmd_destroy(struct nitrox_device *ndev) -{ - RTE_SET_USED(ndev); - return 0; -} - RTE_PMD_REGISTER_PCI(nitrox, nitrox_pmd); RTE_PMD_REGISTER_PCI_TABLE(nitrox, pci_id_nitrox_map); diff --git a/drivers/common/nitrox/nitrox_device.h b/drivers/common/nitrox/nitrox_device.h index 877bccb321..b74b71808e 100644 --- a/drivers/common/nitrox/nitrox_device.h +++ b/drivers/common/nitrox/nitrox_device.h @@ -6,6 +6,7 @@ #define _NITROX_DEVICE_H_ #include +#include struct nitrox_sym_device; struct nitrox_comp_device; @@ -21,4 +22,19 @@ struct nitrox_device { uint16_t nr_queues; }; +struct nitrox_driver { + TAILQ_ENTRY(nitrox_driver) next; + int (*create)(struct nitrox_device *ndev); + int (*destroy)(struct nitrox_device *ndev); +}; + +__rte_internal +void nitrox_register_driver(struct nitrox_driver *ndrv); + +#define NITROX_REGISTER_DRIVER(ndrv) \ +RTE_INIT(ndrv ## _register) \ +{ \ + nitrox_register_driver(&ndrv); \ +} + #endif /* _NITROX_DEVICE_H_ */ diff --git a/drivers/common/nitrox/version.map b/drivers/common/nitrox/version.map index 43295171e4..f58c044fc5 100644 --- a/drivers/common/nitrox/version.map +++ b/drivers/common/nitrox/version.map @@ -4,6 +4,7 @@ INTERNAL { nitrox_logtype; nitrox_qp_release; nitrox_qp_setup; + nitrox_register_driver; local: *; }; diff --git a/drivers/compress/nitrox/meson.build b/drivers/compress/nitrox/meson.build index 1becc66912..5cecc2ad66 100644 --- a/drivers/compress/nitrox/meson.build +++ b/drivers/compress/nitrox/meson.build @@ -12,5 +12,3 @@ sources += files( 'nitrox_comp.c', 'nitrox_comp_reqmgr.c', ) - -includes += include_directories('../../common/nitrox') diff --git a/drivers/compress/nitrox/nitrox_comp.c b/drivers/compress/nitrox/nitrox_comp.c index 1b2054c61a..41a3ee0de8 100644 --- a/drivers/compress/nitrox/nitrox_comp.c +++ b/drivers/compress/nitrox/nitrox_comp.c @@ -602,3 +602,9 @@ nitrox_comp_pmd_destroy(struct nitrox_device *ndev) ndev->comp_dev = NULL; return 0; } + +static struct nitrox_driver comp_drv = { + .create = nitrox_comp_pmd_create, + .destroy = nitrox_comp_pmd_destroy, +}; +NITROX_REGISTER_DRIVER(comp_drv); diff --git a/drivers/crypto/nitrox/meson.build b/drivers/crypto/nitrox/meson.build index f8887713d2..cbe2b7d6dc 100644 --- a/drivers/crypto/nitrox/meson.build +++ b/drivers/crypto/nitrox/meson.build @@ -13,5 +13,3 @@ sources += files( 'nitrox_sym_capabilities.c', 'nitrox_sym_reqmgr.c', ) - -includes += include_directories('../../common/nitrox') diff --git a/drivers/crypto/nitrox/nitrox_sym.c b/drivers/crypto/nitrox/nitrox_sym.c index da70121d91..7c2dc98a4b 100644 --- a/drivers/crypto/nitrox/nitrox_sym.c +++ b/drivers/crypto/nitrox/nitrox_sym.c @@ -798,6 +798,12 @@ nitrox_sym_pmd_destroy(struct nitrox_device *ndev) return rte_cryptodev_pmd_destroy(ndev->sym_dev->cdev); } +static struct nitrox_driver sym_drv = { + .create = nitrox_sym_pmd_create, + .destroy = nitrox_sym_pmd_destroy, +}; +NITROX_REGISTER_DRIVER(sym_drv); + static struct cryptodev_driver nitrox_crypto_drv; RTE_PMD_REGISTER_CRYPTO_DRIVER(nitrox_crypto_drv, nitrox_rte_sym_drv, -- 2.48.1