Commit dfcacc15 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

cpuidle: Clean up fallback handling in cpuidle_idle_call()

Move the fallback code path in cpuidle_idle_call() to the end of the
function to avoid jumping to a label in an if () branch.
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 31a34090
...@@ -124,20 +124,8 @@ static void cpuidle_idle_call(void) ...@@ -124,20 +124,8 @@ static void cpuidle_idle_call(void)
* Fall back to the default arch idle method on errors. * Fall back to the default arch idle method on errors.
*/ */
next_state = cpuidle_select(drv, dev); next_state = cpuidle_select(drv, dev);
if (next_state < 0) { if (next_state < 0)
use_default: goto use_default;
/*
* We can't use the cpuidle framework, let's use the default
* idle routine.
*/
if (current_clr_polling_and_test())
local_irq_enable();
else
arch_cpu_idle();
goto exit_idle;
}
/* /*
* The idle task must be scheduled, it is pointless to * The idle task must be scheduled, it is pointless to
...@@ -195,6 +183,19 @@ static void cpuidle_idle_call(void) ...@@ -195,6 +183,19 @@ static void cpuidle_idle_call(void)
rcu_idle_exit(); rcu_idle_exit();
start_critical_timings(); start_critical_timings();
return;
use_default:
/*
* We can't use the cpuidle framework, let's use the default
* idle routine.
*/
if (current_clr_polling_and_test())
local_irq_enable();
else
arch_cpu_idle();
goto exit_idle;
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment