[dpdk-dev] [PATCH] BugFix: VFIO never works

Thomas Monjalon thomas.monjalon at 6wind.com
Fri Jul 10 14:16:03 CEST 2015


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.


More information about the dev mailing list