Re: [PATCH] checks: Do not omit nodes with labels if symbol generation is requested

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Thu, Feb 21, 2019 at 11:51:05AM +0800, Chen-Yu Tsai wrote:
> Commit 4038fd90056e ("dtc: add ability to make nodes conditional on them
> being referenced") added the new /omit-if-no-ref/ directive to mark
> nodes as eligible to be discarded if not referenced. The mechanism to
> process this happens before the symbol generation phase. This means even
> if symbol generation is requested and the node has a label, it will be
> discarded if there are no references to it within the same file.
> 
> This is probably not what people expect. When using symbol generation to
> compile base device trees for applying overlays, nodes with labels could
> be referenced by the overlays, and therefore should be preserved.

Hmm.. actually that does seem like the behaviour I'd expect.  Using
/omit-if-no-ref/ and then expecting the node to appear without
referencing it seems like a user error.

> 
> Check if the node has a label and symbol generation was requested before
> dropping the node.
> 
> Signed-off-by: Chen-Yu Tsai <wens@xxxxxxxx>
> ---
>  checks.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/checks.c b/checks.c
> index c0ed45e1c3bc..8ddab9e50889 100644
> --- a/checks.c
> +++ b/checks.c
> @@ -660,6 +660,8 @@ ERROR(path_references, fixup_path_references, NULL, &duplicate_node_names);
>  static void fixup_omit_unused_nodes(struct check *c, struct dt_info *dti,
>  				    struct node *node)
>  {
> +	if (generate_symbols && node->labels)
> +		return;
>  	if (node->omit_if_unused && !node->is_referenced)
>  		delete_node(node);
>  }

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Device Tree]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux