Blob Blame History Raw
From 6f43d909b39607af7200a735cb0f959853d5fef6 Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Fri, 31 Aug 2018 15:53:52 +0100
Subject: [PATCH] mem: fix max DMA maskbit size

The sanity check inside rte_eal_check_dma_mask is using 47 bits as
the maximum size. It turns out there are some IOMMU hardware reporting
48 bits precluding the IOVA VA mode to be enabled.

It is harmless to raise the maximum mask size to 63 bits.

This patch also removes any reference to unused X86_VA_WIDTH.

Fixes: 3a80bc50c949 ("mem: add function for checking memsegs IOVAs addresses")

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
---
 drivers/bus/pci/linux/pci.c               | 1 -
 lib/librte_eal/common/eal_common_memory.c | 5 -----
 2 files changed, 6 deletions(-)

diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c
index c81ed5025..44440f223 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
@@ -583,7 +583,6 @@ pci_one_device_iommu_support_va(struct rte_pci_device *dev)
 {
 #define VTD_CAP_MGAW_SHIFT	16
 #define VTD_CAP_MGAW_MASK	(0x3fULL << VTD_CAP_MGAW_SHIFT)
-#define X86_VA_WIDTH 47 /* From Documentation/x86/x86_64/mm.txt */
 	struct rte_pci_addr *addr = &dev->addr;
 	char filename[PATH_MAX];
 	FILE *fp;
diff --git a/lib/librte_eal/common/eal_common_memory.c b/lib/librte_eal/common/eal_common_memory.c
index 00ab3935c..a0922f18b 100644
--- a/lib/librte_eal/common/eal_common_memory.c
+++ b/lib/librte_eal/common/eal_common_memory.c
@@ -109,13 +109,8 @@ rte_dump_physmem_layout(FILE *f)
 	}
 }
 
-#if defined(RTE_ARCH_X86)
-#define X86_VA_WIDTH 47 /* From Documentation/x86/x86_64/mm.txt */
-#define MAX_DMA_MASK_BITS X86_VA_WIDTH
-#else
 /* 63 bits is good enough for a sanity check */
 #define MAX_DMA_MASK_BITS 63
-#endif
 
 /* check memseg iovas are within the required range based on dma mask */
 int
-- 
2.17.1