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.

Reply via email to