X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Flinuxapp%2Feal%2Feal_pci.c;h=074d7cf19ea73bbd383426ac1353e9dc1c75a6ce;hb=050a84b9afa8c52b8c5ee1fe87d6234ed2067dd4;hp=6001d326dc54f0f13f3defc60be3a7e29c29f3e4;hpb=10ed99419b12b82569f7cebc61e9cb8d9191a915;p=dpdk.git diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c index 6001d326dc..074d7cf19e 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c @@ -974,10 +974,16 @@ rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr, struct rte_pci_device *d } #ifdef RTE_EAL_UNBIND_PORTS - if (dr->drv_flags & RTE_PCI_DRV_NEED_IGB_UIO) + if (dr->drv_flags & RTE_PCI_DRV_NEED_IGB_UIO) { /* unbind driver and load uio resources for Intel NICs */ if (pci_switch_module(dr, dev, 1, IGB_UIO_NAME) < 0) return -1; + } else if (dr->drv_flags & RTE_PCI_DRV_FORCE_UNBIND && + rte_eal_process_type() == RTE_PROC_PRIMARY) { + /* unbind current driver */ + if (pci_unbind_kernel_driver(dev) < 0) + return -1; + } #else if (dr->drv_flags & RTE_PCI_DRV_NEED_IGB_UIO) /* just map resources for Intel NICs */