diff options
author | Tero Kristo <t-kristo@ti.com> | 2017-10-24 17:14:18 +0300 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2017-10-27 16:25:54 +0200 |
commit | bba26a5291c8343101e0296b0e478deb4c9b60b0 (patch) | |
tree | a2d29f005d4372041bf87715d3377ac31997dcb0 | |
parent | c8f8194d76cc2dc6d499548431ff62d0ddeca68d (diff) | |
download | dtc-bba26a5291c8343101e0296b0e478deb4c9b60b0.zip dtc-bba26a5291c8343101e0296b0e478deb4c9b60b0.tar.gz dtc-bba26a5291c8343101e0296b0e478deb4c9b60b0.tar.bz2 |
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@ti.com>
[dwg: Shortcut handling of invalid phandles]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | dtc.c | 3 | ||||
-rw-r--r-- | livetree.c | 5 |
2 files changed, 6 insertions, 2 deletions
@@ -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); @@ -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) |