[dpdk-dev] [PATCH 17/38] net/bnx2x: Don't use eth_driver
Harish Patil
harish.patil at qlogic.com
Mon Mar 6 20:32:58 CET 2017
>
>Signed-off-by: Jan Blunck <jblunck at infradead.org>
>---
> drivers/net/bnx2x/bnx2x_ethdev.c | 64
>+++++++++++++++++++++++++++-------------
> 1 file changed, 44 insertions(+), 20 deletions(-)
>
>diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c
>b/drivers/net/bnx2x/bnx2x_ethdev.c
>index a0b0dfa..e295951 100644
>--- a/drivers/net/bnx2x/bnx2x_ethdev.c
>+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
>@@ -12,6 +12,7 @@
> #include "bnx2x_rxtx.h"
>
> #include <rte_dev.h>
>+#include <rte_ethdev_pci.h>
>
> /*
> * The set of PCI devices this driver supports
>@@ -626,34 +627,57 @@ eth_bnx2xvf_dev_init(struct rte_eth_dev *eth_dev)
> return bnx2x_common_dev_init(eth_dev, 1);
> }
>
>-static struct eth_driver rte_bnx2x_pmd = {
>- .pci_drv = {
>- .id_table = pci_id_bnx2x_map,
>- .drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
>- .probe = rte_eth_dev_pci_probe,
>- .remove = rte_eth_dev_pci_remove,
>- },
>- .eth_dev_init = eth_bnx2x_dev_init,
>- .dev_private_size = sizeof(struct bnx2x_softc),
>+static struct rte_pci_driver rte_bnx2x_pmd;
>+static struct rte_pci_driver rte_bnx2xvf_pmd;
>+
>+static int eth_bnx2x_pci_probe(struct rte_pci_driver *pci_drv,
>+ struct rte_pci_device *pci_dev)
>+{
>+ struct rte_eth_dev *eth_dev;
>+ int ret;
>+
>+ eth_dev = rte_eth_dev_pci_allocate(pci_dev, sizeof(struct bnx2x_softc));
>+ if (!eth_dev)
>+ return -ENOMEM;
>+
>+ if (pci_drv == &rte_bnx2x_pmd)
>+ ret = eth_bnx2x_dev_init(eth_dev);
>+ else if (pci_drv == &rte_bnx2xvf_pmd)
>+ ret = eth_bnx2xvf_dev_init(eth_dev);
>+ else
>+ ret = -EINVAL;
>+
>+ if (ret)
>+ rte_eth_dev_pci_release(eth_dev);
>+
>+ return ret;
>+}
>+
>+static int eth_bnx2x_pci_remove(struct rte_pci_device *pci_dev)
>+{
>+ return rte_eth_dev_pci_generic_remove(pci_dev, NULL);
>+}
>+
>+static struct rte_pci_driver rte_bnx2x_pmd = {
>+ .id_table = pci_id_bnx2x_map,
>+ .drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
>+ .probe = eth_bnx2x_pci_probe,
>+ .remove = eth_bnx2x_pci_remove,
> };
>
> /*
> * virtual function driver struct
> */
>-static struct eth_driver rte_bnx2xvf_pmd = {
>- .pci_drv = {
>- .id_table = pci_id_bnx2xvf_map,
>- .drv_flags = RTE_PCI_DRV_NEED_MAPPING,
>- .probe = rte_eth_dev_pci_probe,
>- .remove = rte_eth_dev_pci_remove,
>- },
>- .eth_dev_init = eth_bnx2xvf_dev_init,
>- .dev_private_size = sizeof(struct bnx2x_softc),
>+static struct rte_pci_driver rte_bnx2xvf_pmd = {
>+ .id_table = pci_id_bnx2xvf_map,
>+ .drv_flags = RTE_PCI_DRV_NEED_MAPPING,
>+ .probe = eth_bnx2x_pci_probe,
>+ .remove = eth_bnx2x_pci_remove,
> };
>
>-RTE_PMD_REGISTER_PCI(net_bnx2x, rte_bnx2x_pmd.pci_drv);
>+RTE_PMD_REGISTER_PCI(net_bnx2x, rte_bnx2x_pmd);
> RTE_PMD_REGISTER_PCI_TABLE(net_bnx2x, pci_id_bnx2x_map);
> RTE_PMD_REGISTER_KMOD_DEP(net_bnx2x, "* igb_uio | uio_pci_generic |
>vfio");
>-RTE_PMD_REGISTER_PCI(net_bnx2xvf, rte_bnx2xvf_pmd.pci_drv);
>+RTE_PMD_REGISTER_PCI(net_bnx2xvf, rte_bnx2xvf_pmd);
> RTE_PMD_REGISTER_PCI_TABLE(net_bnx2xvf, pci_id_bnx2xvf_map);
> RTE_PMD_REGISTER_KMOD_DEP(net_bnx2xvf, "* igb_uio | vfio");
>--
>2.7.4
>
>
Acked-by: Harish Patil <harish.patil at qlogic.com>
More information about the dev
mailing list