[dpdk-dev] [PATCH v3 04/12] linuxapp/vfio: ignore mapping for ioport region

Stephen Hemminger stephen at networkplumber.org
Thu Jan 7 19:16:49 CET 2016


This looks like the right thing to do. Minor nits.

> diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
> index 74f91ba..4077eb6 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
> @@ -760,6 +760,26 @@ pci_vfio_map_resource(struct rte_pci_device *dev)
>  			return -1;
>  		}
>  
> +		/* chk for io port region */
> +		uint32_t ioport_bar;

In general DPDK has followed the kernel practice of putting declarations
at the start of function/basic block. It is ok by me, but just noting that
the rest of the code doesn't do it.

> +		ret = pread64(vfio_dev_fd, &ioport_bar, sizeof(ioport_bar),
> +			      VFIO_GET_REGION_ADDR(VFIO_PCI_CONFIG_REGION_INDEX)
> +			      + PCI_BASE_ADDRESS_0 + i*4);
> +
> +		if (ret != sizeof(ioport_bar)) {
> +			RTE_LOG(ERR, EAL,
> +				"Cannot read command (%x) from PCI config"
> +				"space!\n", PCI_BASE_ADDRESS_0 + i*4);

Please dont split the line of a log message string in mid sentence.

> +			return -1;
> +		}
> +
> +		if (ioport_bar & PCI_BASE_ADDRESS_SPACE_IO) {
> +			RTE_LOG(INFO, EAL, "\tIgnore mapping since Its a i/o"
> +					   "port bar (%d) addr : %x\n", i,
same here

> +					   ioport_bar);
> +			continue;
> +		}
> +


More information about the dev mailing list