[PATCH 3/4] bsps/shared/ofw: Make rtems_ofw_get_effective_phandle iterative

Gedare Bloom gedare at rtems.org
Fri Feb 5 18:23:04 UTC 2021


On Fri, Feb 5, 2021 at 10:41 AM G S Niteesh Babu <niteesh.gs at gmail.com>
wrote:

> 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 9dec310247..e3626747fa 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);
>
> Assuming this works, it is much better now :) Thanks.


>      if (rtems_ofw_get_enc_prop(child, "phandle", &ref, sizeof(ref)) == -1
> &&
>          rtems_ofw_get_enc_prop(child, "ibm,phandle", &ref, sizeof(ref))
> == -1 &&
> --
> 2.17.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20210205/38677c83/attachment.html>


More information about the devel mailing list