ARM: cpuidle: Remove overzealous error logging

CPUidle back-end operations are not implemented in some platforms
but this should not be considered an error serious enough to be
logged. Check the arm_cpuidle_init() return value to detect whether
the failure must be reported or not in the kernel log and do
not log it if the platform does not support CPUidle operations.

Signed-off-by: Lorenzo Pieralisi <[email protected]>
Acked-by: Daniel Lezcano <[email protected]>
Reviewed-by: Ulf Hansson <[email protected]>
Reviewed-by: Sudeep Holla <[email protected]>
Cc: Ulf Hansson <[email protected]>
Cc: Sudeep Holla <[email protected]>
Cc: Daniel Lezcano <[email protected]>
Cc: "Rafael J. Wysocki" <[email protected]>
Signed-off-by: Will Deacon <[email protected]>
This commit is contained in:
Lorenzo Pieralisi 2019-08-09 12:03:08 +01:00 • committed by Will Deacon
commit 6460d7ba48

View file

@ -105,11 +105,17 @@ static int __init arm_idle_init_cpu(int cpu)
ret = arm_cpuidle_init(cpu);
/*
* Allow the initialization to continue for other CPUs, if the reported
* failure is a HW misconfiguration/breakage (-ENXIO).
* Allow the initialization to continue for other CPUs, if the
* reported failure is a HW misconfiguration/breakage (-ENXIO).
*
* Some platforms do not support idle operations
* (arm_cpuidle_init() returning -EOPNOTSUPP), we should
* not flag this case as an error, it is a valid
* configuration.
*/
if (ret) {
pr_err("CPU %d failed to init idle CPU ops\n", cpu);
if (ret != -EOPNOTSUPP)
pr_err("CPU %d failed to init idle CPU ops\n", cpu);
ret = ret == -ENXIO ? 0 : ret;
goto out_kfree_drv;
}