diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-05-10 01:18:46 +0200 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-05-14 21:37:47 +0200 |
commit | 827a5aefc542b8fb17c00de06118e5cd0e3800f2 (patch) | |
tree | 5728ec6fb8a0b67057e35d131ed2a2d7d67b2a69 /drivers/cpuidle | |
parent | faad38492814112e3e7ce94d90123bbe301fff33 (diff) | |
download | linux-827a5aefc542b8fb17c00de06118e5cd0e3800f2.tar.gz linux-827a5aefc542b8fb17c00de06118e5cd0e3800f2.tar.bz2 linux-827a5aefc542b8fb17c00de06118e5cd0e3800f2.zip |
sched / idle: Call default_idle_call() from cpuidle_enter_state()
The check of the cpuidle_enter() return value against -EBUSY
made in call_cpuidle() will not be necessary any more if
cpuidle_enter_state() calls default_idle_call() directly when it
is about to return -EBUSY, so make that happen and eliminate the
check.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
Tested-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Acked-by: Kevin Hilman <khilman@linaro.org>
Diffstat (limited to 'drivers/cpuidle')
-rw-r--r-- | drivers/cpuidle/cpuidle.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c index 9306dd5f460e..a7b9e679a2ef 100644 --- a/drivers/cpuidle/cpuidle.c +++ b/drivers/cpuidle/cpuidle.c @@ -167,8 +167,10 @@ int cpuidle_enter_state(struct cpuidle_device *dev, struct cpuidle_driver *drv, * local timer will be shut down. If a local timer is used from another * CPU as a broadcast timer, this call may fail if it is not available. */ - if (broadcast && tick_broadcast_enter()) + if (broadcast && tick_broadcast_enter()) { + default_idle_call(); return -EBUSY; + } /* Take note of the planned idle state. */ sched_idle_set_state(target_state); |