|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] xen/dt: Only parse direct child nodes of /reserved-memory
commit b11a4e5bdaeebcd4029b54c19d6aaf80dd4e0fca
Author: Kuan-Wei Chiu <visitorckw@xxxxxxxxx>
AuthorDate: Tue Oct 27 04:18:55 2026 +0100
Commit: Michal Orzel <michal.orzel@xxxxxxx>
CommitDate: Wed Oct 28 08:26:31 2026 +0100
xen/dt: Only parse direct child nodes of /reserved-memory
process_reserved_memory() uses device_tree_for_each_node(), which walks
all descendants of /reserved-memory rather than just its direct children.
However, a child node such as nvmem-rmem can contain nvmem-layout and
cell subnodes whose reg properties specify internal offsets rather than
physical memory addresses. Parsing these subnodes records invalid
reserved memory regions and fails the overlap check when bitfield cells
share the same offset.
Ignore nodes with depth != 1 in process_reserved_memory_node().
Fixes: d96594eef39a ("xen/arm: keep track of reserved-memory regions")
Signed-off-by: Kuan-Wei Chiu <visitorckw@xxxxxxxxx>
Reviewed-by: Michal Orzel <michal.orzel@xxxxxxx>
---
xen/common/device-tree/bootinfo-fdt.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/xen/common/device-tree/bootinfo-fdt.c
b/xen/common/device-tree/bootinfo-fdt.c
index ca64daf4cd..94ebf12fd6 100644
--- a/xen/common/device-tree/bootinfo-fdt.c
+++ b/xen/common/device-tree/bootinfo-fdt.c
@@ -185,8 +185,14 @@ static int __init process_reserved_memory_node(const void
*fdt, int node,
u32 size_cells,
void *data)
{
- int rc = process_memory_node(fdt, node, name, depth, address_cells,
- size_cells, data);
+ int rc;
+
+ /* Only direct children of /reserved-memory describe memory regions */
+ if ( depth != 1 )
+ return 0;
+
+ rc = process_memory_node(fdt, node, name, depth, address_cells,
+ size_cells, data);
if ( rc == -ENOSPC )
panic("Max number of supported reserved-memory regions reached.\n");
--
generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |