[dpdk-dev] [PATCH v9 3/9] linuxapp/eal_pci: get iommu class
Thomas Monjalon
thomas at monjalon.net
Fri Oct 6 02:17:22 CEST 2017
20/09/2017 13:23, Santosh Shukla:
> +/** Device driver supports iova as va */
> +#define RTE_PCI_DRV_IOVA_AS_VA 0X0040
This flag name is surprizing and the comment does not help.
For the comment:
"Device driver supports I/O virtual addressing" ?
For the flag:
RTE_PCI_DRV_IOVA ?
[...]
> /*
> - * Get iommu class of pci devices on the bus.
This line has been added in previous patch.
Please fix it earlier.
[...]
> +/*
> + * Any one of the device has iova as va
> + */
> +static inline int
> +pci_device_has_iova_va(void)
The name of this function does not suggest that it scans
every devices.
> +{
> + struct rte_pci_device *dev = NULL;
> + struct rte_pci_driver *drv = NULL;
> +
> + 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 &&
> + rte_pci_match(drv, dev))
> + return 1;
> + }
This is the reason of exporting the match function?
(note: match() is bus driver function, so it should not be exported)
Just because you get every devices without driver filtering?
There should be a better solution.
Please try to compare drv with dev->driver.
More information about the dev
mailing list