@@ -68,9 +68,12 @@ read_memory_node(unsigned int *count)
*count = 0;
ret = glob(MEM_NODE_PATH_GLOB, 0, NULL, &result);
+ if (ret != 0)
+ ret = glob(MEM_NODE_PATH_GLOB_VM, 0, NULL, &result);
+
if (ret != 0) {
- DPAAX_DEBUG("Unable to glob device-tree memory node: (%s)(%d)",
- MEM_NODE_PATH_GLOB, ret);
+ DPAAX_DEBUG("Unable to glob device-tree memory node (err: %d)",
+ ret);
goto out;
}
@@ -45,6 +45,8 @@ extern struct dpaax_iova_table *dpaax_iova_table_p;
* is SoC dependent, or even Uboot fixup dependent.
*/
#define MEM_NODE_PATH_GLOB "/proc/device-tree/memory[@0-9]*/reg"
+/* For Virtual Machines memory node is at different path (below) */
+#define MEM_NODE_PATH_GLOB_VM "/proc/device-tree/memory/reg"
/* Device file should be multiple of 16 bytes, each containing 8 byte of addr
* and its length. Assuming max of 5 entries.
*/
In Virtual Machine the memory node in the device tree is at '/proc/device-tree/memory/reg' which is separate from the memory node path on the host. This patch enables check on both the paths. Fixes: 2f3d633aa593 ("common/dpaax: add library for PA/VA translation table") Cc: stable@dpdk.org Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com> --- drivers/common/dpaax/dpaax_iova_table.c | 7 +++++-- drivers/common/dpaax/dpaax_iova_table.h | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) -- 2.17.1