On Mon, Nov 4, 2019 at 6:41 PM Anatoly Burakov <anatoly.bura...@intel.com> wrote: > > When requesting DMA mapping to default container, we are meant to > supply the RTE_VFIO_DEFAULT_CONTAINER_FD value, however this is > not handled correctly by get_vfio_cfg_by_container_fd(), because > it only looks at actual fd values and does not check for this > special case. > > Fix it to return default container if the fd requested is the > special RTE_VFIO_DEFAULT_CONTAINER_FD value. > > Fixes: 4f5519ed8349 ("vfio: cleanup getting group fd")
RTE_VFIO_DEFAULT_CONTAINER_FD has been introduced in 4106d89a18f8 ("vfio: allow DMA map to the default container") (19.05) as part of the rework deprecating rte_vfio_dma_map. > > Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com> > --- > lib/librte_eal/linux/eal/eal_vfio.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/lib/librte_eal/linux/eal/eal_vfio.c > b/lib/librte_eal/linux/eal/eal_vfio.c > index d9541b1220..d7887388f9 100644 > --- a/lib/librte_eal/linux/eal/eal_vfio.c > +++ b/lib/librte_eal/linux/eal/eal_vfio.c > @@ -412,6 +412,9 @@ get_vfio_cfg_by_container_fd(int container_fd) > { > int i; > > + if (container_fd == RTE_VFIO_DEFAULT_CONTAINER_FD) > + return default_vfio_cfg; > + > for (i = 0; i < VFIO_MAX_CONTAINERS; i++) { > if (vfio_cfgs[i].vfio_container_fd == container_fd) > return &vfio_cfgs[i]; > -- > 2.17.1 Reviewed-by: David Marchand <david.march...@redhat.com> Shahaf, can you review this patch please? Thanks. -- David Marchand