From 9362945d7e79ca292215a8875055998928d36e74 Mon Sep 17 00:00:00 2001 From: Anatoly Burakov Date: Mon, 4 Nov 2019 17:41:33 +0000 Subject: [PATCH] vfio: fix DMA mapping with default container 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: 4106d89a18f8 ("vfio: allow DMA map to the default container") Cc: stable@dpdk.org Signed-off-by: Anatoly Burakov Reviewed-by: David Marchand Acked-by: Shahaf Shuler --- 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.20.1