From c1e55a5513e9bca41dc78a0f20245cc928596a3a Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Wed, 18 Oct 2017 16:29:14 -0500 Subject: [PATCH] checks: fix handling of unresolved phandles for dts plugins In dts plugins, it is valid to have unresolved phandle values. The check_property_phandle_args and check_interrupts_property checks failed to account for this resulting in spurious warnings or asserts, respectively. Fix this by bailing from the checks if we're checking a dts plugin as there is no way to further validate the properties. Fixes: ee3d26f6960b ("checks: add interrupts property check") Fixes: b3bbac02d5e3 ("checks: add phandle with arg property checks") Reported-by: Alan Tull Signed-off-by: Rob Herring Signed-off-by: David Gibson --- checks.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/checks.c b/checks.c index 08a3a29..e661384 100644 --- a/checks.c +++ b/checks.c @@ -988,6 +988,10 @@ static void check_property_phandle_args(struct check *c, * entries when each index position has a specific definition. */ if (phandle == 0 || phandle == -1) { + /* Give up if this is an overlay with external references */ + if (dti->dtsflags & DTSF_PLUGIN) + break; + cellsize = 0; continue; } @@ -1176,6 +1180,11 @@ static void check_interrupts_property(struct check *c, prop = get_property(parent, "interrupt-parent"); if (prop) { phandle = propval_cell(prop); + /* Give up if this is an overlay with external references */ + if ((phandle == 0 || phandle == -1) && + (dti->dtsflags & DTSF_PLUGIN)) + return; + irq_node = get_node_by_phandle(root, phandle); if (!irq_node) { FAIL(c, dti, "Bad interrupt-parent phandle for %s",