Skip to content

Commit

Permalink
powerpc/powernv: Silence SYSPARAM warning on boot
Browse files Browse the repository at this point in the history
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@jms.id.au>
Acked-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
  • Loading branch information
Joel Stanley authored and Michael Ellerman committed May 11, 2015
1 parent a14ab6b commit 38c0488
Showing 1 changed file with 15 additions and 16 deletions.
31 changes: 15 additions & 16 deletions arch/powerpc/platforms/powernv/opal-sysparam.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand All @@ -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);
Expand Down Expand Up @@ -293,12 +292,12 @@ void __init opal_sys_param_init(void)
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;
}

0 comments on commit 38c0488

Please sign in to comment.