On 07/10/2014 01:50 PM, Tyrel Datwyler wrote:
> Commit 75b57ecf9 refactored device tree nodes to use kobjects such that they
> can be exposed via /sysfs. A secondary commit 0829f6d1f 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: 0829f6d1f69e ("of: device_node kobject lifecycle fixes")
> Cc: [email protected]
> Signed-off-by: Tyrel Datwyler <[email protected]>
Acked-by: Nathan Fontenot <[email protected]>
> ---
> V2:
> - included stable kernel list on Cc per comment by mpe
>
> arch/powerpc/platforms/pseries/dlpar.c | 1 +
> arch/powerpc/platforms/pseries/reconfig.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/arch/powerpc/platforms/pseries/dlpar.c
> b/arch/powerpc/platforms/pseries/dlpar.c
> index 022b38e..2d0b4d6 100644
> --- a/arch/powerpc/platforms/pseries/dlpar.c
> +++ b/arch/powerpc/platforms/pseries/dlpar.c
> @@ -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_init(dn);
>
> return dn;
> }
> diff --git a/arch/powerpc/platforms/pseries/reconfig.c
> b/arch/powerpc/platforms/pseries/reconfig.c
> index 0435bb6..1c0a60d 100644
> --- a/arch/powerpc/platforms/pseries/reconfig.c
> +++ b/arch/powerpc/platforms/pseries/reconfig.c
> @@ -69,6 +69,7 @@ static int pSeries_reconfig_add_node(const char *path,
> struct property *proplist
>
> np->properties = proplist;
> of_node_set_flag(np, OF_DYNAMIC);
> + of_node_init(np);
>
> np->parent = derive_parent(path);
> if (IS_ERR(np->parent)) {
>
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html