[Pdbg] [PATCH v5 16/30] libpdbg: Probe should traverse virtual nodes also

Alistair Popple alistair at popple.id.au
Tue Oct 15 14:57:05 AEDT 2019


Reviewed-by: Alistair Popple <alistair at popple.id.au>

On Monday, 14 October 2019 4:17:34 PM AEDT Amitay Isaacs wrote:
> This ensures that the virtual nodes have correct status in the system
> device tree view.
> 
> Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
> ---
>  libpdbg/target.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/libpdbg/target.c b/libpdbg/target.c
> index 627a44e..84aa510 100644
> --- a/libpdbg/target.c
> +++ b/libpdbg/target.c
> @@ -360,7 +360,7 @@ struct pdbg_target_class *get_target_class(struct pdbg_target *target)
>   * exist but don't */
>  enum pdbg_target_status pdbg_target_probe(struct pdbg_target *target)
>  {
> -	struct pdbg_target *parent;
> +	struct pdbg_target *parent, *vnode;
>  	enum pdbg_target_status status;
>  
>  	assert(target);
> @@ -374,7 +374,7 @@ enum pdbg_target_status pdbg_target_probe(struct pdbg_target *target)
>  		 * it's status won't have changed */
>  		   return status;
>  
> -	parent = target->parent;
> +	parent = get_parent(target, false);
>  	if (parent) {
>  		/* Recurse up the tree to probe and set parent target status */
>  		pdbg_target_probe(parent);
> @@ -406,6 +406,11 @@ enum pdbg_target_status pdbg_target_probe(struct pdbg_target *target)
>  		}
>  	}
>  
> +	/* Make sure any virtual nodes are also probed */
> +	vnode = target_to_virtual(target, true);
> +	if (vnode)
> +		pdbg_target_probe(vnode);
> +
>  	/* At this point any parents must exist and have already been probed */
>  	if (target->probe && target->probe(target)) {
>  		/* Could not find the target */
> 






More information about the Pdbg mailing list