[Crosstoolchain-logs] [device-tree-compiler] 10/29: livetree: avoid assertion of orphan phandles with overlays

Vagrant Cascadian vagrant at moszumanska.debian.org
Tue Jan 23 06:34:38 UTC 2018


This is an automated email from the git hooks/post-receive script.

vagrant pushed a commit to branch debian/master
in repository device-tree-compiler.

commit bba26a5291c8343101e0296b0e478deb4c9b60b0
Author: Tero Kristo <t-kristo at ti.com>
Date:   Tue Oct 24 17:14:18 2017 +0300

    livetree: avoid assertion of orphan phandles with overlays
    
    Right now, check_interrupts_property fails with overlays, as the phandle
    for the interrupt-parent can be orphan. Avoid this by allowing the orphan
    node to pass the assert check.
    
    The process_checks() call is also moved later during init sequence,
    so that we can use the global variable generate_fixups to check if
    we are compiling an overlay.
    
    Signed-off-by: Tero Kristo <t-kristo at ti.com>
    [dwg: Shortcut handling of invalid phandles]
    Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
---
 dtc.c      | 3 ++-
 livetree.c | 5 ++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/dtc.c b/dtc.c
index 1655b2f..c36994e 100644
--- a/dtc.c
+++ b/dtc.c
@@ -317,13 +317,14 @@ int main(int argc, char *argv[])
 		dti->boot_cpuid_phys = cmdline_boot_cpuid;
 
 	fill_fullpaths(dti->dt, "");
-	process_checks(force, dti);
 
 	/* on a plugin, generate by default */
 	if (dti->dtsflags & DTSF_PLUGIN) {
 		generate_fixups = 1;
 	}
 
+	process_checks(force, dti);
+
 	if (auto_label_aliases)
 		generate_label_tree(dti, "aliases", false);
 
diff --git a/livetree.c b/livetree.c
index 6846ad2..184703a 100644
--- a/livetree.c
+++ b/livetree.c
@@ -540,7 +540,10 @@ struct node *get_node_by_phandle(struct node *tree, cell_t phandle)
 {
 	struct node *child, *node;
 
-	assert((phandle != 0) && (phandle != -1));
+	if ((phandle == 0) || (phandle == -1)) {
+		assert(generate_fixups);
+		return NULL;
+	}
 
 	if (tree->phandle == phandle) {
 		if (tree->deleted)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/crosstoolchain/device-tree-compiler.git



More information about the Crosstoolchain-logs mailing list