From patchwork Fri Aug 26 13:56:45 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shreyansh Jain X-Patchwork-Id: 15392 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id B16E15A58; Fri, 26 Aug 2016 15:57:50 +0200 (CEST) Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0083.outbound.protection.outlook.com [104.47.40.83]) by dpdk.org (Postfix) with ESMTP id 0F7395A4F for ; Fri, 26 Aug 2016 15:57:46 +0200 (CEST) Received: from BN3PR0301CA0024.namprd03.prod.outlook.com (10.160.180.162) by BY2PR03MB1878.namprd03.prod.outlook.com (10.164.114.18) with Microsoft SMTP Server (TLS) id 15.1.466.19; Fri, 26 Aug 2016 13:57:43 +0000 Received: from BN1BFFO11FD052.protection.gbl (2a01:111:f400:7c10::1:163) by BN3PR0301CA0024.outlook.office365.com (2a01:111:e400:4000::34) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.599.9 via Frontend Transport; Fri, 26 Aug 2016 13:57:43 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD052.mail.protection.outlook.com (10.58.145.7) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.587.6 via Frontend Transport; Fri, 26 Aug 2016 13:57:44 +0000 Received: from Tophie.ap.freescale.net ([10.232.14.87]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u7QDvHpi023630; Fri, 26 Aug 2016 06:57:42 -0700 From: Shreyansh Jain To: CC: , , , , Shreyansh Jain Date: Fri, 26 Aug 2016 19:26:45 +0530 Message-ID: <1472219823-29486-8-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1472219823-29486-1-git-send-email-shreyansh.jain@nxp.com> References: <1466510566-9240-1-git-send-email-shreyansh.jain@nxp.com> <1472219823-29486-1-git-send-email-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131166934651252764; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(86362001)(5890100001)(87936001)(575784001)(110136002)(85426001)(76176999)(77096005)(81156014)(33646002)(8676002)(8666005)(50986999)(4326007)(97736004)(106466001)(81166006)(48376002)(92566002)(5003940100001)(2906002)(7846002)(189998001)(36756003)(105606002)(104016004)(2950100001)(229853001)(586003)(47776003)(8936002)(50466002)(305945005)(356003)(5660300001)(50226002)(11100500001)(19580395003)(2351001)(626004)(19580405001)(68736007)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR03MB1878; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD052; 1:x3rUnPh6CHvOJkk1J3j8qhvK3962NTXBy2Su/GfkB0SFYR3MtE9EQFstA3G1hlQQ3qkNKkBXaX/iXQ5JXuF2HTWwAWauzHurRhZZrIXnjV8Sep+UNlpldNz6kduAKfSwqfIwOMcoTw83t2esLZ5hssysVY9B3oO2sTqBBRhcR5bDBJ907BpPN/YIJWHMqKOBnpBndeJvO0a2wX7reY7b+6JyAZzfrTWO4y7ahZ5f9ZrsnkwkXIpkF34Yh/Aufk6OUVNnnQFElRT/pHeZ1Dn29I+DD/6Bc3LYYFj7ltpa9J1nPETg+X5c00KPFhghsyQkAdwnOfuDnEp1CI336vaS68Tr+qn2Mio5rpQw5aKtUAEQVg8ZlH06yQ8wPI55rDUKEs0pju1z2E5clg76aJzVMmktZIdgnhMVa9M+e0rB2fasVrqKI7sUhACvdyNvLb3Nh0KsBohGJZoirWOxbohT+NVxwmcQ2MCjtL6IXn71BifU0l7Rlk3xvN6gXwodzf3IyuOYDq9BZHu9YGBYQBlPv7fzMtDEJkBzP0RsGR4Rz9fsR8i06yYFLHYi8z+Cv9u1nX1+SfDHmSkIhQOXbLOTIgYqWMjkPYeytjAssgjegNGSVfgkRvX6lKG0yJNpKttFX6NOU/D7KoNnlzE95ZO+QX1v9pTa4DH6iBAtHT9wmn6j3eBx2h4Dx3AzeYKPoO1WJtuc94NOE75V/JcVoRlXnKOng5JxnfOjZ58OjB3EOd4= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 1fdf0dd0-b89e-4351-301c-08d3cdb8f4a1 X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB1878; 2:rNqQUUS8rvRJYC9Lzb8GG357nxebxcqQwcRrx5zaJZYNqMbrzNHHnU3h9695R78amZuck7vedZbFbJ0cSqsST/XSEgzCvVNqx7iQLMLSf4sM+Dgvn3OdzXCjz6cyx9Ioq13zogXShRy4yILeKyPA/Jptlr1L89In4/GupOtbgAmyPeqPC0bj2cV7l2jB1Y0c; 3:a75kqjiHgaxNtH3Scs8shInbRvdF0EnXH67ohWEfEdCTsAVB6iSqh6C80FUNuLmYGUe16aZSHeqiDJagPOxeexTuNIksTc4AP/eO+FFu+ZqY7l8EDFPVPbFq+Hs+fzvfU0slEYiWxsd7wDLmH0AXJYPp1u3Rn0WFx0sZVJb1vrCnwAKmXOZl3JpoCK44lO1TtiT/nu9GdS8TJtdbmvNjIs5IkVX+xX73UFxX7bKoMEo=; 25:S9p4MeBIzhnZzFUjevFgCh/CGafgGgJrTlPErjGkUmqab7hM9BSM5N9pYvDq0dtsjsw6TT2gT5JHaM+8ktaiqqL32y0/8lS3rt8nwtHaUYF9Z1SlAqOfg0J7mo3cFlP/JkBlb12fYMrF6PgSl1VB7jJLNzdSk0uDz7bPtLxsAKtIpK5U4qC7LxXPTTRzzUvVYdoGgPq+bvfdAg5uR72j565eKi9qVp5NyJOR1IpPQ5yATUX7bcjPwVcWhvWLU3pAQKcxmRb/vZPGRu9uhtfAFyXkJnP5W0u1ThG9iTKibV8= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB1878; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13015025)(13017025)(13024025)(13018025)(13023025)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:BY2PR03MB1878; BCL:0; PCL:0; RULEID:(400006); SRVR:BY2PR03MB1878; X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB1878; 4:BG7oF8pWrXh6jyrQqOXvC5L3AC+pJPlkIL9Qy2dN3Ut8zbUPxSGDdimrCcgV+i1Oz6BY2mAosxB47MwUxDEfEH7lQfWWMdODnniuki7PBzx0uSbLFA8EhJO3/hKb5Cjd6+ZUKxpeKgDe2NWDNC5jWcVlb/PQBi5zhvbG/JbV/I0jiXwgWZCM9Ntv2amNS8Tt1FNAAAX+OotPFlJ86Ma14wbq186TlF0YoqmBT5gomm79bbqU0GuUnf7GJlHk9nPrxsZ/8pbGUVQnHK8TARX1LOWrLK5x0kHIBAmBWYyBXoyO2xuq8Cv3RTU/jjra3mY17nKnTYzRXXLzJEGo76HCM3AoDpkNqXLAAVWR6rs4N2e5vUonMulR5gpNku3kXz7Eu4gOQn3wjHYQZUNiK/mOQdduh2Zud3319pzdKG3nFCuokJGszyCrxg4g3wFL9Fqin0xQ11GzRym8TJD7Xtl4k1S4QL5LvCWtB0s8gwfkMhZiimsOOn6KXdVHaQM8xq8a4Tqw1F86WS70aBdTNBV0fLzAT9+PyAbE+v1eQDM1vZc= X-Forefront-PRVS: 00462943DE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR03MB1878; 23:bbb0hnazxGjy2c28wuIfU9RMP3bhzqDMPL0+WWGE0?= =?us-ascii?Q?MFhnjhRn6M3IQVASEGazlkl9CelIHE1p+roEkwoZ2J3RZISV/TUbMkV+ZU7N?= =?us-ascii?Q?Pif5nb2krviCERNkGhA8gxPkaB3l+1oCiGovbISSOaPpyVo79J1JoUXCjTcq?= =?us-ascii?Q?9Hae5wClEAmbcL397dNmvFxWRvKXxrQpEHQ59RUq36xUQ3i4JrtxcAmlYYY8?= =?us-ascii?Q?6cVU13WpioXnrmiBBmfJ7hgUmP1XErSvHw0YJKaAaLHci26BK4XjKSW7XE4k?= =?us-ascii?Q?KUBQ2stZiBq1D9M+6LYeaAQLHYq2RFY8IeKuD76iIMCkyw4chXArW7oewhC3?= =?us-ascii?Q?CkZv+uVHFKgNI6Q7AoNLmgRyqKjEKovI23vLjtQ/v04JtLtlCiUPit5eWZl9?= =?us-ascii?Q?L2w2qgjbAeIwVQPceJh/9jsLUUTiZrvjdgnEGM9l5g8aQFkW3aPXega+mkb6?= =?us-ascii?Q?Po68frTNiNzU6bpA5kzXwRVt4McVkNmT+aO65veknZvcKVdsk3MYhncuKJTi?= =?us-ascii?Q?EP2zAfS7SoPLp+cMO2MGgeNPRG22IuE8bGn3ufqsD0Fye1OEzsAjp8Hbnea7?= =?us-ascii?Q?vZFf/vqYF4uaqeN6mVShAmWd/snBBNnbK7VATrumyXwOWwnZPtgeRjjCGcjL?= =?us-ascii?Q?cGlCTMaE5236ZQJQOC6d5F7IaNUVfYPgaiPzMXvLSENBL0DsTPSclq17cqcd?= =?us-ascii?Q?VqUIvZyY+Pzyq9q39VF2Zn4qDsPBI/wK6znU6FXbpiavAI+6GJTUF/wJIPUw?= =?us-ascii?Q?yLdYOO+SWXQyeZbflkYHy5o6xjZbfAUWp1/47Wf6+g+Rg92ox2vPgox9R8xa?= =?us-ascii?Q?S1SFpQ/OuJgTGk35m+sU8hhPqci0Mzec/6AOUiKtGjojHKVovb74/4aDh8vZ?= =?us-ascii?Q?3f1gmuHiXxpkk1jNq7av7kE4QHv1xpQXNN7whtmlF8SWkyCnifboFO4RbCJt?= =?us-ascii?Q?XyVtuw/zcgUcVUHaKq2/iwSvJm5m4qix/MJMDF8RxqvauvSN8bgsUyq1VoXk?= =?us-ascii?Q?wZ0pRJyc8Jr4FnTaCI6BYyxm7VUPv2LmkBhRnQZ6aZaoWY6NaO2uY58bSqs/?= =?us-ascii?Q?xNfUy8WTWDSqm7AHMbdYcgkShHCPv+fMZ/mWijcHLrqyeW9aJ4AknOmXOkG3?= =?us-ascii?Q?VXY7a1urxgHRd80Gsh20J1xIQmbxO8cD5kxe55fihz6BO2jSqQ9FgdwE7uac?= =?us-ascii?Q?qucpo/UgsfPZ++u9VzV4zq0yoSF5xnjsrGS5AkT8+pLjHXIARwv/XyIpftOG?= =?us-ascii?Q?wfEkgF65OnjYgDvqRK0ZCzbtjQkFh7QaWOAcLiI?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB1878; 5:FtlXeHnATTpvKfC2kqGlMr04QR/Kuqquo4i5BpGq5RGU0u/jvso5zMG5Q81CHWknwBqSuHdJGrN1yCxfdMCiEPwKqp1bosYyRR5UdLDMMwHwuPscbtoriyfLueAM6MQicAa9iDEr+5Id2voO0qc5yrBlsY4AuDxre/2YpmaTwqUCQqfWj1Ka6vESTjYKQO24dazJ8wGmfvXZ2/hIzok/YQ==; 24:3ieIYPM7iU/cgkY5MMs51M5KufKE+4FkhYx5FZWZa322N0c3vml13lCMk+ob6KPr/xLH5cVYWc8II0RXMlvE9NroOp0UWXI2llvPnETczZo=; 7:KsfqX8bsn8mKwEFd5Dm46pAyhe7Bpw+MGDgbVT6Zl7GBfcCNA7apyrhdDUUx8EUA5w2XNV4U18AFrwzXfiJlWLnrKiPWBmtZugYiGy9ksceDLoVG2Xy5FK7+321Jjm9hqoSYbXKOqvJcO7ThjPNe/a+m9u2bGqVOSk4vYs39+3v9kdNacZ0viipTsayZkwWzG/MDFRpKkr82mT4qG35dbbr5oLoEBrY2FI+jghy2aUQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2016 13:57:44.9380 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR03MB1878 Subject: [dpdk-dev] [PATCH v8 07/25] driver: init/uninit common wrappers for PCI drivers X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" crypto and ethdev drivers aligned to PCI probe/remove. Existing handlers for init/uninit can be easily reused for this. Signed-off-by: David Marchand Signed-off-by: Shreyansh Jain --- lib/librte_cryptodev/rte_cryptodev.c | 16 ++++++++-------- lib/librte_cryptodev/rte_cryptodev_pmd.h | 12 ++++++++++++ lib/librte_cryptodev/rte_cryptodev_version.map | 7 +++++++ lib/librte_ether/rte_ethdev.c | 14 +++++++------- lib/librte_ether/rte_ethdev.h | 13 +++++++++++++ lib/librte_ether/rte_ether_version.map | 9 +++++++++ 6 files changed, 56 insertions(+), 15 deletions(-) diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c index 6434894..b1e82b6 100644 --- a/lib/librte_cryptodev/rte_cryptodev.c +++ b/lib/librte_cryptodev/rte_cryptodev.c @@ -429,9 +429,9 @@ rte_cryptodev_pmd_virtual_dev_init(const char *name, size_t dev_private_size, return cryptodev; } -static int -rte_cryptodev_init(struct rte_pci_driver *pci_drv, - struct rte_pci_device *pci_dev) +int +rte_cryptodev_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev) { struct rte_cryptodev_driver *cryptodrv; struct rte_cryptodev *cryptodev; @@ -490,8 +490,8 @@ rte_cryptodev_init(struct rte_pci_driver *pci_drv, return -ENXIO; } -static int -rte_cryptodev_uninit(struct rte_pci_device *pci_dev) +int +rte_cryptodev_pci_remove(struct rte_pci_device *pci_dev) { const struct rte_cryptodev_driver *cryptodrv; struct rte_cryptodev *cryptodev; @@ -539,15 +539,15 @@ rte_cryptodev_pmd_driver_register(struct rte_cryptodev_driver *cryptodrv, { /* Call crypto device initialization directly if device is virtual */ if (type == PMD_VDEV) - return rte_cryptodev_init((struct rte_pci_driver *)cryptodrv, + return rte_cryptodev_pci_probe((struct rte_pci_driver *)cryptodrv, NULL); /* * Register PCI driver for physical device intialisation during * PCI probing */ - cryptodrv->pci_drv.devinit = rte_cryptodev_init; - cryptodrv->pci_drv.devuninit = rte_cryptodev_uninit; + cryptodrv->pci_drv.devinit = rte_cryptodev_pci_probe; + cryptodrv->pci_drv.devuninit = rte_cryptodev_pci_remove; rte_eal_pci_register(&cryptodrv->pci_drv); diff --git a/lib/librte_cryptodev/rte_cryptodev_pmd.h b/lib/librte_cryptodev/rte_cryptodev_pmd.h index c977c61..3fb7c7c 100644 --- a/lib/librte_cryptodev/rte_cryptodev_pmd.h +++ b/lib/librte_cryptodev/rte_cryptodev_pmd.h @@ -534,6 +534,18 @@ rte_cryptodev_pmd_driver_register(struct rte_cryptodev_driver *crypto_drv, void rte_cryptodev_pmd_callback_process(struct rte_cryptodev *dev, enum rte_cryptodev_event_type event); +/** + * Wrapper for use by pci drivers as a .devinit function to attach to a crypto + * interface. + */ +int rte_cryptodev_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev); + +/** + * Wrapper for use by pci drivers as a .devuninit function to detach a crypto + * interface. + */ +int rte_cryptodev_pci_remove(struct rte_pci_device *pci_dev); #ifdef __cplusplus } diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map index a08fd20..1fc0d57 100644 --- a/lib/librte_cryptodev/rte_cryptodev_version.map +++ b/lib/librte_cryptodev/rte_cryptodev_version.map @@ -39,3 +39,10 @@ DPDK_16.07 { rte_cryptodev_parse_vdev_init_params; } DPDK_16.04; + +DPDK_16.11 { + global: + + rte_cryptodev_pci_probe; + rte_cryptodev_pci_remove; +} DPDK_16.07; diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index f62a9ec..8825219 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -245,9 +245,9 @@ rte_eth_dev_release_port(struct rte_eth_dev *eth_dev) return 0; } -static int -rte_eth_dev_init(struct rte_pci_driver *pci_drv, - struct rte_pci_device *pci_dev) +int +rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev) { struct eth_driver *eth_drv; struct rte_eth_dev *eth_dev; @@ -299,8 +299,8 @@ rte_eth_dev_init(struct rte_pci_driver *pci_drv, return diag; } -static int -rte_eth_dev_uninit(struct rte_pci_device *pci_dev) +int +rte_eth_dev_pci_remove(struct rte_pci_device *pci_dev) { const struct eth_driver *eth_drv; struct rte_eth_dev *eth_dev; @@ -357,8 +357,8 @@ rte_eth_dev_uninit(struct rte_pci_device *pci_dev) void rte_eth_driver_register(struct eth_driver *eth_drv) { - eth_drv->pci_drv.devinit = rte_eth_dev_init; - eth_drv->pci_drv.devuninit = rte_eth_dev_uninit; + eth_drv->pci_drv.devinit = rte_eth_dev_pci_probe; + eth_drv->pci_drv.devuninit = rte_eth_dev_pci_remove; rte_eal_pci_register(ð_drv->pci_drv); } diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index b0fe033..37d78bf 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -4368,6 +4368,19 @@ rte_eth_dev_get_port_by_name(const char *name, uint8_t *port_id); int rte_eth_dev_get_name_by_port(uint8_t port_id, char *name); +/** + * Wrapper for use by pci drivers as a .devinit function to attach to a ethdev + * interface. + */ +int rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev); + +/** + * Wrapper for use by pci drivers as a .devuninit function to detach a ethdev + * interface. + */ +int rte_eth_dev_pci_remove(struct rte_pci_device *pci_dev); + #ifdef __cplusplus } #endif diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map index 45ddf44..17e7448 100644 --- a/lib/librte_ether/rte_ether_version.map +++ b/lib/librte_ether/rte_ether_version.map @@ -138,4 +138,13 @@ DPDK_16.07 { rte_eth_dev_get_name_by_port; rte_eth_dev_get_port_by_name; rte_eth_xstats_get_names; + } DPDK_16.04; + +DPDK_16.11 { + global: + + rte_eth_dev_pci_probe; + rte_eth_dev_pci_remove; + +} DPDK_16.07;