Thread (4 messages) 4 messages, 2 authors, 2020-08-24

Re: [PATCH v3] cpuidle: tegra: Correctly handle result of arm_cpuidle_simple_enter()

From: Dmitry Osipenko <digetx@gmail.com>
Date: 2020-08-24 16:23:01
Also in: linux-pm

24.08.2020 19:02, Jon Hunter пишет:
On 14/08/2020 18:53, Dmitry Osipenko wrote:
quoted
09.07.2020 20:35, Dmitry Osipenko пишет:
quoted
The enter() callback of CPUIDLE drivers returns index of the entered idle
state on success or a negative value on failure. The negative value could
any negative value, i.e. it doesn't necessarily needs to be a error code.
That's because CPUIDLE core only cares about the fact of failure and not
about the reason of the enter() failure.

Like every other enter() callback, the arm_cpuidle_simple_enter() returns
the entered idle-index on success. Unlike some of other drivers, it never
fails. It happened that TEGRA_C1=index=err=0 in the code of cpuidle-tegra
driver, and thus, there is no problem for the cpuidle-tegra driver created
by the typo in the code which assumes that the arm_cpuidle_simple_enter()
returns a error code.

The arm_cpuidle_simple_enter() also may return a -ENODEV error if CPU_IDLE
is disabled in a kernel's config, but all CPUIDLE drivers are disabled if
CPU_IDLE is disabled, including the cpuidle-tegra driver. So we can't ever
see the error code from arm_cpuidle_simple_enter() today.

Of course the code may get some changes in the future and then the
typo may transform into a real bug, so let's correct the typo! The
tegra_cpuidle_state_enter() is now changed to make it return the entered
idle-index on success and negative error code on fail, which puts it on
par with the arm_cpuidle_simple_enter(), making code consistent in regards
to the error handling.

This patch fixes a minor typo in the code, it doesn't fix any bugs.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---

Changelog:

v3: The tegra_cpuidle_state_enter() now returns entered idle-index on
    success instead of 0. Hence the error message will be shown by the
    tegra-cpuidle driver if arm_cpuidle_simple_enter() will ever fail.
    Again thanks to Jon Hunter!
Hello, Jon! Do you see anything else that could be improved in this patch?
Sorry for the delay. Looks good to me ...

Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
No problems, thank you! :)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help