pci: add flag to force unbind device
Some devices need to be unbound in order to be used via the PMD without kernel module. Signed-off-by: Damien Millescamps <damien.millescamps@6wind.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
This commit is contained in:
parent
10ed99419b
commit
050a84b9af
@ -192,6 +192,8 @@ struct rte_pci_driver {
|
||||
#define RTE_PCI_DRV_NEED_IGB_UIO 0x0001
|
||||
/** Device driver must be registered several times until failure */
|
||||
#define RTE_PCI_DRV_MULTIPLE 0x0002
|
||||
/** Device needs to be unbound even if no module is provided */
|
||||
#define RTE_PCI_DRV_FORCE_UNBIND 0x0004
|
||||
|
||||
/**< Internal use only - Macro used by pci addr parsing functions **/
|
||||
#define GET_PCIADDR_FIELD(in, fd, lim, dlm) \
|
||||
|
@ -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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user