Re: [PATCH] checks: fix handling of unresolved phandles for dts plugins

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Wed, Oct 18, 2017 at 4:29 PM, Rob Herring <robh@xxxxxxxxxx> wrote:
> 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 <atull@xxxxxxxxxx>
> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
> ---
>  checks.c | 9 +++++++++
>  1 file changed, 9 insertions(+)

Hi Rob,

Thanks for the fix!

Alan

>
> diff --git a/checks.c b/checks.c
> index 08a3a29edae3..e66138449886 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",
> --
> 2.11.0
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree-compiler" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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