pci: use EAL exposed configuration

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
This commit is contained in:
Gaetan Rivet 2017-10-26 12:06:06 +02:00 committed by Thomas Monjalon
parent 64d19ecc06
commit da5c269bd7
4 changed files with 14 additions and 10 deletions

View File

@ -368,7 +368,7 @@ rte_pci_scan(void)
};
/* for debug purposes, PCI can be disabled */
if (internal_config.no_pci)
if (!rte_eal_has_pci())
return 0;
fd = open("/dev/pci", O_RDONLY);

View File

@ -457,7 +457,7 @@ rte_pci_scan(void)
struct rte_pci_addr addr;
/* for debug purposes, PCI can be disabled */
if (internal_config.no_pci)
if (!rte_eal_has_pci())
return 0;
#ifdef VFIO_PRESENT

View File

@ -214,7 +214,7 @@ pci_get_uio_dev(struct rte_pci_device *dev, char *dstbuf,
return -1;
/* create uio device if we've been asked to */
if (internal_config.create_uio_dev && create &&
if (rte_eal_create_uio_dev() && create &&
pci_mknod_uio_dev(dstbuf, uio_num) < 0)
RTE_LOG(WARNING, EAL, "Cannot create /dev/uio%u\n", uio_num);

View File

@ -209,14 +209,18 @@ static int
pci_vfio_setup_interrupts(struct rte_pci_device *dev, int vfio_dev_fd)
{
int i, ret, intr_idx;
enum rte_intr_mode intr_mode;
/* default to invalid index */
intr_idx = VFIO_PCI_NUM_IRQS;
/* Get default / configured intr_mode */
intr_mode = rte_eal_vfio_intr_mode();
/* get interrupt type from internal config (MSI-X by default, can be
* overridden from the command line
*/
switch (internal_config.vfio_intr_mode) {
switch (intr_mode) {
case RTE_INTR_MODE_MSIX:
intr_idx = VFIO_PCI_MSIX_IRQ_INDEX;
break;
@ -240,7 +244,7 @@ pci_vfio_setup_interrupts(struct rte_pci_device *dev, int vfio_dev_fd)
int fd = -1;
/* skip interrupt modes we don't want */
if (internal_config.vfio_intr_mode != RTE_INTR_MODE_NONE &&
if (intr_mode != RTE_INTR_MODE_NONE &&
i != intr_idx)
continue;
@ -256,7 +260,7 @@ pci_vfio_setup_interrupts(struct rte_pci_device *dev, int vfio_dev_fd)
/* if this vector cannot be used with eventfd, fail if we explicitly
* specified interrupt type, otherwise continue */
if ((irq.flags & VFIO_IRQ_INFO_EVENTFD) == 0) {
if (internal_config.vfio_intr_mode != RTE_INTR_MODE_NONE) {
if (intr_mode != RTE_INTR_MODE_NONE) {
RTE_LOG(ERR, EAL,
" interrupt vector does not support eventfd!\n");
return -1;
@ -277,15 +281,15 @@ pci_vfio_setup_interrupts(struct rte_pci_device *dev, int vfio_dev_fd)
switch (i) {
case VFIO_PCI_MSIX_IRQ_INDEX:
internal_config.vfio_intr_mode = RTE_INTR_MODE_MSIX;
intr_mode = RTE_INTR_MODE_MSIX;
dev->intr_handle.type = RTE_INTR_HANDLE_VFIO_MSIX;
break;
case VFIO_PCI_MSI_IRQ_INDEX:
internal_config.vfio_intr_mode = RTE_INTR_MODE_MSI;
intr_mode = RTE_INTR_MODE_MSI;
dev->intr_handle.type = RTE_INTR_HANDLE_VFIO_MSI;
break;
case VFIO_PCI_INTX_IRQ_INDEX:
internal_config.vfio_intr_mode = RTE_INTR_MODE_LEGACY;
intr_mode = RTE_INTR_MODE_LEGACY;
dev->intr_handle.type = RTE_INTR_HANDLE_VFIO_LEGACY;
break;
default:
@ -615,7 +619,7 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
int
pci_vfio_map_resource(struct rte_pci_device *dev)
{
if (internal_config.process_type == RTE_PROC_PRIMARY)
if (rte_eal_process_type() == RTE_PROC_PRIMARY)
return pci_vfio_map_resource_primary(dev);
else
return pci_vfio_map_resource_secondary(dev);