提交 05f0c746 编写于 作者: E Etienne Carriere 提交者: Tom Rini

optee: fix copy of optee reserved-memory node

Fix the loop that parses FDT for a reserved memory node named "optee".

Before this change, if at least one subnode was found in the
reserved-memory node, the function endlessly looped since instruction
continue returned back in the loop without updating variable subnode.
This change fixes the issue by using a for loop.

Fixes: 6ccb05ea ("image: fdt: copy possible optee nodes to a loaded devicetree")
Signed-off-by: NEtienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: NPatrick Delaunay <patrick.delaunay@st.com>
上级 07672c47
......@@ -156,8 +156,9 @@ int optee_copy_fdt_nodes(const void *old_blob, void *new_blob)
/* optee inserts its memory regions as reserved-memory nodes */
nodeoffset = fdt_subnode_offset(old_blob, 0, "reserved-memory");
if (nodeoffset >= 0) {
subnode = fdt_first_subnode(old_blob, nodeoffset);
while (subnode >= 0) {
for (subnode = fdt_first_subnode(old_blob, nodeoffset);
subnode >= 0;
subnode = fdt_next_subnode(old_blob, subnode)) {
const char *name = fdt_get_name(old_blob,
subnode, NULL);
if (!name)
......@@ -197,8 +198,6 @@ int optee_copy_fdt_nodes(const void *old_blob, void *new_blob)
if (ret < 0)
return ret;
}
subnode = fdt_next_subnode(old_blob, subnode);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册