[Acked/cmt] [Vivid][SRU][PATCH] powerpc/powernv: Silence SYSPARAM warning on boot
Andy Whitcroft
apw at canonical.com
Thu Jul 30 14:19:59 UTC 2015
On Wed, Jul 29, 2015 at 11:24:24AM -0500, Chris J Arges wrote:
> From: Joel Stanley <joel at jms.id.au>
>
> BugLink: http://bugs.launchpad.net/bugs/1478513
>
> OpenPower BMC machines do not place any sysparams in the device tree, so
> at every boot we get a warning:
>
> [ 0.437176] SYSPARAM: Opal sysparam node not found
>
> Remove the warning, and reorder the init so we don't peform allocations
> when there is no sysparam node in the device tree.
>
> Signed-off-by: Joel Stanley <joel at jms.id.au>
> Acked-by: Neelesh Gupta <neelegup at linux.vnet.ibm.com>
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
> (cherry picked from commit 38c0488770983b2654f075540cc1fc71f55b6df5)
> Signed-off-by: Chris J Arges <chris.j.arges at canonical.com>
> ---
> arch/powerpc/platforms/powernv/opal-sysparam.c | 31 +++++++++++++-------------
> 1 file changed, 15 insertions(+), 16 deletions(-)
>
> diff --git a/arch/powerpc/platforms/powernv/opal-sysparam.c b/arch/powerpc/platforms/powernv/opal-sysparam.c
> index 9d1acf2..2e52b47 100644
> --- a/arch/powerpc/platforms/powernv/opal-sysparam.c
> +++ b/arch/powerpc/platforms/powernv/opal-sysparam.c
> @@ -162,10 +162,20 @@ void __init opal_sys_param_init(void)
> goto out;
> }
>
> + /* Some systems do not use sysparams; this is not an error */
> + sysparam = of_find_node_by_path("/ibm,opal/sysparams");
> + if (!sysparam)
> + goto out;
> +
> + if (!of_device_is_compatible(sysparam, "ibm,opal-sysparams")) {
> + pr_err("SYSPARAM: Opal sysparam node not compatible\n");
> + goto out_node_put;
> + }
> +
> sysparam_kobj = kobject_create_and_add("sysparams", opal_kobj);
> if (!sysparam_kobj) {
> pr_err("SYSPARAM: Failed to create sysparam kobject\n");
> - goto out;
> + goto out_node_put;
> }
>
> /* Allocate big enough buffer for any get/set transactions */
> @@ -176,30 +186,19 @@ void __init opal_sys_param_init(void)
> goto out_kobj_put;
> }
>
> - sysparam = of_find_node_by_path("/ibm,opal/sysparams");
> - if (!sysparam) {
> - pr_err("SYSPARAM: Opal sysparam node not found\n");
> - goto out_param_buf;
> - }
> -
> - if (!of_device_is_compatible(sysparam, "ibm,opal-sysparams")) {
> - pr_err("SYSPARAM: Opal sysparam node not compatible\n");
> - goto out_node_put;
> - }
> -
> /* Number of parameters exposed through DT */
> count = of_property_count_strings(sysparam, "param-name");
> if (count < 0) {
> pr_err("SYSPARAM: No string found of property param-name in "
> "the node %s\n", sysparam->name);
> - goto out_node_put;
> + goto out_param_buf;
> }
>
> id = kzalloc(sizeof(*id) * count, GFP_KERNEL);
> if (!id) {
> pr_err("SYSPARAM: Failed to allocate memory to read parameter "
> "id\n");
> - goto out_node_put;
> + goto out_param_buf;
> }
>
> size = kzalloc(sizeof(*size) * count, GFP_KERNEL);
> @@ -293,12 +292,12 @@ out_free_size:
> kfree(size);
> out_free_id:
> kfree(id);
> -out_node_put:
> - of_node_put(sysparam);
> out_param_buf:
> kfree(param_data_buf);
> out_kobj_put:
> kobject_put(sysparam_kobj);
> +out_node_put:
> + of_node_put(sysparam);
> out:
> return;
> }
Looks to do what is claimed. Though it is not entirely clear that
saving a message is that important? Other than that:
Acked-by: Andy Whitcroft <apw at canonical.com>
-apw
More information about the kernel-team
mailing list