cpuidle: reduce code duplication inside cpuidle_idle_call()
We are doing this twice in cpuidle_idle_call() routine: drv->states[next_state].flags & CPUIDLE_FLAG_TIMER_STOP Would be better if we actually store this in a local variable and use that. That reduces code duplication and likely makes this piece of code run faster (in case the compiler wasn't able to optimize it earlier) [rjw: Cast the result of bitwise AND to bool explicitly using !!] Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
9b29a86f04
commit
fb11c9c63f
1 changed files with 5 additions and 2 deletions
|
@ -118,6 +118,7 @@ int cpuidle_idle_call(void)
|
|||
struct cpuidle_device *dev = __this_cpu_read(cpuidle_devices);
|
||||
struct cpuidle_driver *drv;
|
||||
int next_state, entered_state;
|
||||
bool broadcast;
|
||||
|
||||
if (off || !initialized)
|
||||
return -ENODEV;
|
||||
|
@ -141,7 +142,9 @@ int cpuidle_idle_call(void)
|
|||
|
||||
trace_cpu_idle_rcuidle(next_state, dev->cpu);
|
||||
|
||||
if (drv->states[next_state].flags & CPUIDLE_FLAG_TIMER_STOP)
|
||||
broadcast = !!(drv->states[next_state].flags & CPUIDLE_FLAG_TIMER_STOP);
|
||||
|
||||
if (broadcast)
|
||||
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER,
|
||||
&dev->cpu);
|
||||
|
||||
|
@ -151,7 +154,7 @@ int cpuidle_idle_call(void)
|
|||
else
|
||||
entered_state = cpuidle_enter_state(dev, drv, next_state);
|
||||
|
||||
if (drv->states[next_state].flags & CPUIDLE_FLAG_TIMER_STOP)
|
||||
if (broadcast)
|
||||
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT,
|
||||
&dev->cpu);
|
||||
|
||||
|
|
Loading…
Reference in a new issue