From: Takeshi Yoshimura Date: Thu, 11 Jul 2019 02:22:35 +0000 (-0700) Subject: vfio: fix build on Linux < 4.2 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=22a55d2eb6ab7a096500f757edf8bbb0715deb28;p=dpdk.git vfio: fix build on Linux < 4.2 The commit db90b4969e2e ("vfio: retry creating sPAPR DMA window") introduced a build breakage on old Linux. Linux <4.2 does not define ddw in struct vfio_iommu_spapr_tce_info. Without ddw, we cannot change window size and so should give up the creation. I just exculuded the retrying code if ddw is not supported. Fixes: db90b4969e2e ("vfio: retry creating sPAPR DMA window") Signed-off-by: Takeshi Yoshimura Tested-by: Anatoly Burakov --- diff --git a/lib/librte_eal/linux/eal/eal_vfio.c b/lib/librte_eal/linux/eal/eal_vfio.c index 7053ebe7d5..fadef427f9 100644 --- a/lib/librte_eal/linux/eal/eal_vfio.c +++ b/lib/librte_eal/linux/eal/eal_vfio.c @@ -1445,6 +1445,7 @@ vfio_spapr_create_new_dma_window(int vfio_container_fd, /* create new DMA window */ ret = ioctl(vfio_container_fd, VFIO_IOMMU_SPAPR_TCE_CREATE, create); if (ret) { +#ifdef VFIO_IOMMU_SPAPR_INFO_DDW /* try possible page_shift and levels for workaround */ uint32_t levels; @@ -1463,6 +1464,7 @@ vfio_spapr_create_new_dma_window(int vfio_container_fd, if (!ret) break; } +#endif if (ret) { RTE_LOG(ERR, EAL, " cannot create new DMA window, " "error %i (%s)\n", errno, strerror(errno));