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)
commit6b4955ba7bc05e40c8c41071cc121bc26ca65277
treec43564f8aa4474f40c5c5209b99e7080c0616c61
parent5b3f5c408d8cc59b87e47f1ab9803dbd006e4a91
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