Re: [PATCH 4/4] of: detect invalid phandle in overlay

From: Frank Rowand
Date: Sat Apr 15 2017 - 00:00:17 EST


Adding Stephen.

On 04/14/17 20:55, frowand.list@xxxxxxxxx wrote:
> From: Frank Rowand <frank.rowand@xxxxxxxx>
>
> Overlays are not allowed to modify phandle values of previously existing
> nodes because there is no information available to allow fixup up
> properties that use the previously existing phandle.
>
> Signed-off-by: Frank Rowand <frank.rowand@xxxxxxxx>
> ---
> drivers/of/overlay.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
> index ca0b85f5deb1..20ab49d2f7a4 100644
> --- a/drivers/of/overlay.c
> +++ b/drivers/of/overlay.c
> @@ -130,6 +130,10 @@ static int of_overlay_apply_single_device_node(struct of_overlay *ov,
> /* NOTE: Multiple mods of created nodes not supported */
> tchild = of_get_child_by_name(target, cname);
> if (tchild != NULL) {
> + /* new overlay phandle value conflicts with existing value */
> + if (child->phandle)
> + return -EINVAL;
> +
> /* apply overlay recursively */
> ret = of_overlay_apply_one(ov, tchild, child);
> of_node_put(tchild);
>