of: overlay: set node fields from properties when add new overlay node
authorFrank Rowand <frank.rowand@sony.com>
Sat, 13 Oct 2018 02:21:16 +0000 (19:21 -0700)
committerPhil Elwell <phil@raspberrypi.org>
Mon, 3 Jun 2019 13:51:15 +0000 (14:51 +0100)
commit8bff48328aff10c1e9c134a55337620929e449c2
tree5e9652f9bebad92506b28b87a751498d26dc4e17
parent55e0334cf5a43948b65788980cd8ab729427230e
of: overlay: set node fields from properties when add new overlay node

commit f96278810150fc39085d1872e5b39ea06366d03e upstream.
See: https://github.com/raspberrypi/linux/issues/2995

Overlay nodes added by add_changeset_node() do not have the node
fields name, phandle, and type set.

The node passed to __of_attach_node() when the add node changeset
entry is processed does not contain any properties.  The node's
properties are located in add property changeset entries that will
be processed after the add node changeset is applied.

Set the node's fields in the node contained in the add node
changeset entry and do not set them to incorrect values in
add_changeset_node().

A visible symptom that is fixed by this patch is the names of nodes
added by overlays that have an entry in /sys/bus/platform/drivers/*/
will contain the unit-address but the node-name will be <NULL>,  for
example, "fc4ab000.<NULL>".  After applying the patch the name, in
this example, for node restart@fc4ab000 is "fc4ab000.restart".

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