2015-07-10 12:38, Bruce Richardson: > On Fri, Jul 10, 2015 at 01:25:49PM +0200, David Marchand wrote: > > On Fri, Jul 10, 2015 at 10:34 AM, Tetsuya Mukawa <mukawa at igel.co.jp> > > wrote: > > > On 2015/07/10 16:47, Michael Qiu wrote: > > > > Commit 35b3313e322b ("pci: merge mapping functions for linux and bsd") > > > > > > > > introduced a bug that all vfio will be > > > > blocked. > > > > > > > > Root cause is that VFIO_PRESENT is unaccessable in eal > > > > common level. > > > > > > > > This patch is to fix this. > > > > > > > > Signed-off-by: Michael Qiu <michael.qiu at intel.com> [...] > > > > --- a/lib/librte_eal/common/eal_common_pci.c > > > > +++ b/lib/librte_eal/common/eal_common_pci.c > > > > @@ -146,10 +146,8 @@ pci_map_device(struct rte_pci_device *dev) > > > > /* try mapping the NIC resources using VFIO if it exists */ > > > > switch (dev->kdrv) { > > > > case RTE_KDRV_VFIO: > > > > -#ifdef VFIO_PRESENT > > > > if (pci_vfio_is_enabled()) > > > > ret = pci_vfio_map_resource(dev); > > > > -#endif > > > > > > > This is a common file, vfio is not available on BSD. > > I missed that during review. > > > > Did you test build on BSD ? > > > Just tried it. BSD build fails with this patch applied. > > Rather than using ifdefs, we could also look at providing dummy functions for > vfio in BSD. They would never be called by this code as drivers in BSD should > never have dev->kdrv == RTE_KDRV_VFIO.
Why not implementing different versions of pci_map_device() and pci_unmap_device() in linuxapp and bsdapp EAL? They are only wrappers so no code would be duplicated.