common/dpaax: fallback to check separate memory node for VM
authorNipun Gupta <nipun.gupta@nxp.com>
Tue, 5 Nov 2019 14:23:15 +0000 (19:53 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 6 Nov 2019 00:13:21 +0000 (01:13 +0100)
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
drivers/common/dpaax/dpaax_iova_table.h

index 43c9c72..98b076e 100644 (file)
@@ -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;
        }
 
index 138827e..fef97f6 100644 (file)
@@ -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.
  */