]> git.baikalelectronics.ru Git - kernel.git/commit
of: overlay: use prop add changeset entry for property in new nodes
authorFrank Rowand <frank.rowand@sony.com>
Fri, 5 Oct 2018 03:28:08 +0000 (20:28 -0700)
committerFrank Rowand <frank.rowand@sony.com>
Fri, 9 Nov 2018 06:11:08 +0000 (22:11 -0800)
commit956709742f7e2bb8e42ffff95300c450af165a79
treec43564f8aa4474f40c5c5209b99e7080c0616c61
parenta20e60d4dce2ec4ee5ad739e3b12a5021edcac57
of: overlay: use prop add changeset entry for property in new nodes

The changeset entry 'update property' was used for new properties in
an overlay instead of 'add property'.

The decision of whether to use 'update property' was based on whether
the property already exists in the subtree where the node is being
spliced into.  At the top level of creating a changeset describing the
overlay, the target node is in the live devicetree, so checking whether
the property exists in the target node returns the correct result.
As soon as the changeset creation algorithm recurses into a new node,
the target is no longer in the live devicetree, but is instead in the
detached overlay tree, thus all properties are incorrectly found to
already exist in the target.

This fix will expose another devicetree bug that will be fixed
in the following patch in the series.

When this patch is applied the errors reported by the devictree
unittest will change, and the unittest results will change from:

   ### dt-test ### end of unittest - 210 passed, 0 failed

to

   ### dt-test ### end of unittest - 203 passed, 7 failed

Tested-by: Alan Tull <atull@kernel.org>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
drivers/of/overlay.c