driver core: Do not overwrite secondary fwnode with NULL if it is set
authorMika Westerberg <mika.westerberg@linux.intel.com>
Mon, 30 Nov 2015 15:11:39 +0000 (17:11 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 7 Dec 2015 01:29:23 +0000 (02:29 +0100)
commit55f89a8a4538803195395bdf347cbba51dcb1906
tree01d0e0fe91ec053d4538dbeedaef7a900d0c1538
parent00bbc1d8e46a92ce7bd80622cf4b09c3b727a741
driver core: Do not overwrite secondary fwnode with NULL if it is set

If multiple devices share single firmware node like it is case with MFD
devices, the same firmware node (ACPI) is assigned to all of them. The
function also modifies the shared firmware node in order to preserve
secondary firmware node of the device in question.

If the new device which is sharing the firmware node does not have
secondary node it will be NULL which will be assigned to the secondary node
of the shared firmware node losing all built-in properties.

Prevent this by setting the secondary firmware node only if the replacement
is non-NULL.

Print also warning if someone tries to overwrite secondary node that has
already been assigned.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/base/core.c