]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
of: detect invalid phandle in overlay
authorFrank Rowand <frank.rowand@sony.com>
Wed, 21 Jun 2017 19:21:56 +0000 (12:21 -0700)
committerRob Herring <robh@kernel.org>
Thu, 22 Jun 2017 16:19:09 +0000 (11:19 -0500)
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@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/of/overlay.c

index 7827786718d815c0a92a026b5b07cf8d61b6f542..c0e4ee1cd1bad5a57bf8ecb13edbfcdfe7bc2d47 100644 (file)
@@ -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);