Message ID | 20230605154716.840930-3-arjan@linux.intel.com |
---|---|
State | Accepted |
Commit | 7826c069c8765969cfb7a364f8e0e663fc132b10 |
Headers | show |
Series | Add support for running in VM guests to intel_idle | expand |
On Mon, Jun 5, 2023 at 5:47 PM <arjan@linux.intel.com> wrote: > > From: Arjan van de Ven <arjan@linux.intel.com> > > Now that the logic for state_update_enter_method() is in its own > function, the long if .. else if .. else if .. else if chain > can be simplified by just returning from the function > at the various places. This does not change functionality, > but it makes the logic much simpler to read or modify later. > > Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> > --- > drivers/idle/intel_idle.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c > index c351b21c0875..256c2d42e350 100644 > --- a/drivers/idle/intel_idle.c > +++ b/drivers/idle/intel_idle.c > @@ -1849,7 +1849,10 @@ static void state_update_enter_method(struct cpuidle_state *state, int cstate) > WARN_ON_ONCE(state->flags & CPUIDLE_FLAG_IBRS); > WARN_ON_ONCE(state->flags & CPUIDLE_FLAG_IRQ_ENABLE); > state->enter = intel_idle_xstate; > - } else if (cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS) && > + return; > + } > + > + if (cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS) && > state->flags & CPUIDLE_FLAG_IBRS) { > /* > * IBRS mitigation requires that C-states are entered > @@ -1857,9 +1860,15 @@ static void state_update_enter_method(struct cpuidle_state *state, int cstate) > */ > WARN_ON_ONCE(state->flags & CPUIDLE_FLAG_IRQ_ENABLE); > state->enter = intel_idle_ibrs; > - } else if (state->flags & CPUIDLE_FLAG_IRQ_ENABLE) { > + return; > + } > + > + if (state->flags & CPUIDLE_FLAG_IRQ_ENABLE) { > state->enter = intel_idle_irq; > - } else if (force_irq_on) { > + return; > + } > + > + if (force_irq_on) { > pr_info("forced intel_idle_irq for state %d\n", cstate); > state->enter = intel_idle_irq; > } > -- This and the [1/4] applied as 6.5 material. I'll get to the other two shortly. Thanks!
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index c351b21c0875..256c2d42e350 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -1849,7 +1849,10 @@ static void state_update_enter_method(struct cpuidle_state *state, int cstate) WARN_ON_ONCE(state->flags & CPUIDLE_FLAG_IBRS); WARN_ON_ONCE(state->flags & CPUIDLE_FLAG_IRQ_ENABLE); state->enter = intel_idle_xstate; - } else if (cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS) && + return; + } + + if (cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS) && state->flags & CPUIDLE_FLAG_IBRS) { /* * IBRS mitigation requires that C-states are entered @@ -1857,9 +1860,15 @@ static void state_update_enter_method(struct cpuidle_state *state, int cstate) */ WARN_ON_ONCE(state->flags & CPUIDLE_FLAG_IRQ_ENABLE); state->enter = intel_idle_ibrs; - } else if (state->flags & CPUIDLE_FLAG_IRQ_ENABLE) { + return; + } + + if (state->flags & CPUIDLE_FLAG_IRQ_ENABLE) { state->enter = intel_idle_irq; - } else if (force_irq_on) { + return; + } + + if (force_irq_on) { pr_info("forced intel_idle_irq for state %d\n", cstate); state->enter = intel_idle_irq; }