From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id E2EC1A0AC5 for ; Thu, 2 May 2019 09:44:05 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5F6FB29D2; Thu, 2 May 2019 09:44:04 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 735ED2986 for ; Thu, 2 May 2019 09:44:02 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE2 (envelope-from yskoh@mellanox.com) with ESMTPS (AES256-SHA encrypted); 2 May 2019 10:44:01 +0300 Received: from scfae-sc-2.mti.labs.mlnx (scfae-sc-2.mti.labs.mlnx [10.101.0.96]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id x427hwVi009791; Thu, 2 May 2019 10:43:59 +0300 From: Yongseok Koh To: ferruh.yigit@intel.com, anatoly.burakov@intel.com, thomas@monjalon.net, shahafs@mellanox.com Cc: dev@dpdk.org, stable@dpdk.org Date: Thu, 2 May 2019 00:43:56 -0700 Message-Id: <20190502074357.32031-1-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190502014436.40545-1-yskoh@mellanox.com> References: <20190502014436.40545-1-yskoh@mellanox.com> Subject: [dpdk-dev] [PATCH v2 1/2] bus/pci: add Mellanox kernel driver type 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Content-Type: text/plain; charset="UTF-8" Message-ID: <20190502074356.AeihcR_su28dpNQ7m8-_X8MMM9FIK_HfB9Pu9Ijsu2k@z> Mellanox mlx4/5 PMD doesn't need to be detached from kernel driver and attached to VFIO/UIO. Control path still goes through the existing kernel drivers, which is mlx4_core/mlx5_core. Cc: stable@dpdk.org Signed-off-by: Yongseok Koh --- v2: * add RTE_KDRV_NIC_MLX drivers/bus/pci/linux/pci.c | 6 +++++- lib/librte_eal/common/include/rte_dev.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c index c99d523f0a..b931cf9d10 100644 --- a/drivers/bus/pci/linux/pci.c +++ b/drivers/bus/pci/linux/pci.c @@ -329,6 +329,9 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) dev->kdrv = RTE_KDRV_IGB_UIO; else if (!strcmp(driver, "uio_pci_generic")) dev->kdrv = RTE_KDRV_UIO_GENERIC; + else if (!strcmp(driver, "mlx4_core") || + !strcmp(driver, "mlx5_core")) + dev->kdrv = RTE_KDRV_NIC_MLX; else dev->kdrv = RTE_KDRV_UNKNOWN; } else @@ -568,7 +571,8 @@ pci_one_device_has_iova_va(void) FOREACH_DRIVER_ON_PCIBUS(drv) { if (drv && drv->drv_flags & RTE_PCI_DRV_IOVA_AS_VA) { FOREACH_DEVICE_ON_PCIBUS(dev) { - if (dev->kdrv == RTE_KDRV_VFIO && + if ((dev->kdrv == RTE_KDRV_VFIO || + dev->kdrv == RTE_KDRV_NIC_MLX) && rte_pci_match(drv, dev)) return 1; } diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h index 56dd52ad9e..a17023d88b 100644 --- a/lib/librte_eal/common/include/rte_dev.h +++ b/lib/librte_eal/common/include/rte_dev.h @@ -63,6 +63,7 @@ enum rte_kernel_driver { RTE_KDRV_VFIO, RTE_KDRV_UIO_GENERIC, RTE_KDRV_NIC_UIO, + RTE_KDRV_NIC_MLX, RTE_KDRV_NONE, }; -- 2.11.0