[rtems commit] bsps/shared/ofw: Make rtems_ofw_get_effective_phandle iterative

Christian Mauderer christianm at rtems.org
Mon Feb 8 20:25:38 UTC 2021


Module:    rtems
Branch:    master
Commit:    6da50db55bb852b68c64a70dff3ff918222b176b
Changeset: http://git.rtems.org/rtems/commit/?id=6da50db55bb852b68c64a70dff3ff918222b176b

Author:    G S Niteesh Babu <niteesh.gs at gmail.com>
Date:      Sat Feb  6 23:28:11 2021 +0530

bsps/shared/ofw: Make rtems_ofw_get_effective_phandle iterative

Refactored recursive rtems_ofw_get_effective_phandle into a
iterative function.

---

 bsps/shared/ofw/ofw.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/bsps/shared/ofw/ofw.c b/bsps/shared/ofw/ofw.c
index 886ad02..78576ec 100644
--- a/bsps/shared/ofw/ofw.c
+++ b/bsps/shared/ofw/ofw.c
@@ -509,11 +509,12 @@ static phandle_t rtems_ofw_get_effective_phandle(
 {
   phandle_t child;
   phandle_t ref;
+  int node_offset;
 
-  for (child = rtems_ofw_child(node); child != 0; child = rtems_ofw_peer(child)) {
-    ref = rtems_ofw_get_effective_phandle(child, xref);
-    if (ref != -1)
-      return ref;
+  node_offset = fdt_path_offset(fdtp, "/");
+
+  while ((node_offset = fdt_next_node(fdtp, node_offset, NULL)) > 0) {
+    child = rtems_fdt_offset_to_phandle(node_offset);
 
     if (rtems_ofw_get_enc_prop(child, "phandle", &ref, sizeof(ref)) == -1 &&
         rtems_ofw_get_enc_prop(child, "ibm,phandle", &ref, sizeof(ref)) == -1 &&



More information about the vc mailing list