Re: [PATCH resend] 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 Wed, Mar 27, 2019 at 11:53:52AM +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.
> 
> Check if the node has a label and symbol generation was requested before
> dropping the node.
> 
> Signed-off-by: Chen-Yu Tsai <wens@xxxxxxxx>
> ---
> 
> Resending this patch as David requested. Previous discussion can be
> found here:
> 
>     https://www.spinics.net/lists/devicetree-compiler/msg02616.html

Applied, thanks.

A testcase for this edge case would be a nice followup.

> 
> ---
>  checks.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/checks.c b/checks.c
> index 586523464bd0..0524d41e5d2e 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