powerpc/pseries: dynamically added OF nodes need to call of_node_init
Commit75b57ecf9
refactored device tree nodes to use kobjects such that they can be exposed via /sysfs. A secondary commit0829f6d1f
furthered this rework by moving the kobect initialization logic out of of_node_add into its own of_node_init function. The inital commit removed the existing kref_init calls in the pseries dlpar code with the assumption kobject initialization would occur in of_node_add. The second commit had the side effect of triggering a BUG_ON during DLPAR, migration and suspend/resume operations as a result of dynamically added nodes being uninitialized. This patch fixes this by adding of_node_init calls in place of the previously removed kref_init calls. Fixes:0829f6d1f6
("of: device_node kobject lifecycle fixes") Cc: stable@vger.kernel.org Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com> Acked-by: Nathan Fontenot <nfont@linux.vnet.ibm.com> Acked-by: Grant Likely <grant.likely@linaro.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
dad6f37c26
commit
97a9a7179a
|
@ -86,6 +86,7 @@ static struct device_node *dlpar_parse_cc_node(struct cc_workarea *ccwa,
|
||||||
}
|
}
|
||||||
|
|
||||||
of_node_set_flag(dn, OF_DYNAMIC);
|
of_node_set_flag(dn, OF_DYNAMIC);
|
||||||
|
of_node_init(dn);
|
||||||
|
|
||||||
return dn;
|
return dn;
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,6 +69,7 @@ static int pSeries_reconfig_add_node(const char *path, struct property *proplist
|
||||||
|
|
||||||
np->properties = proplist;
|
np->properties = proplist;
|
||||||
of_node_set_flag(np, OF_DYNAMIC);
|
of_node_set_flag(np, OF_DYNAMIC);
|
||||||
|
of_node_init(np);
|
||||||
|
|
||||||
np->parent = derive_parent(path);
|
np->parent = derive_parent(path);
|
||||||
if (IS_ERR(np->parent)) {
|
if (IS_ERR(np->parent)) {
|
||||||
|
|
Loading…
Reference in New Issue