Browse Source

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>
main
Tero Kristo 7 years ago committed by David Gibson
parent
commit
bba26a5291
  1. 3
      dtc.c
  2. 5
      livetree.c

3
dtc.c

@ -317,13 +317,14 @@ int main(int argc, char *argv[]) @@ -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);


5
livetree.c

@ -540,7 +540,10 @@ struct node *get_node_by_phandle(struct node *tree, cell_t phandle) @@ -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)

Loading…
Cancel
Save