On 2015/07/10 21:16, Thomas Monjalon wrote: > 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.
Thanks for comment. Right, it should be. I fixed like above. Tetsuya