2017-06-21 19:22:08

by Frank Rowand

[permalink] [raw]
Subject: [PATCH] of: detect invalid phandle in overlay

From: Frank Rowand <[email protected]>

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 <[email protected]>
---
drivers/of/overlay.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index 7827786718d8..c0e4ee1cd1ba 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -132,6 +132,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);
--
Frank Rowand <[email protected]>


2017-06-22 16:19:27

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH] of: detect invalid phandle in overlay

On Wed, Jun 21, 2017 at 12:21:56PM -0700, [email protected] wrote:
> From: Frank Rowand <[email protected]>
>
> 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 <[email protected]>
> ---
> drivers/of/overlay.c | 4 ++++
> 1 file changed, 4 insertions(+)

Applied.