intel_idle: fix confusing message
authorArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Wed, 19 Apr 2023 14:39:45 +0000 (17:39 +0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 27 Apr 2023 17:37:36 +0000 (19:37 +0200)
By default, all non-POLL C-states are entered with interrupts disabled.

There are 2 ways to make 'intel_idle' enter C-states with interrupts
enabled:
  1. Mark the C-state with the CPUIDLE_FLAG_IRQ_ENABLE flag.
  2. Use the force_irq_on module parameter.

The former is the "proper" way of doing it, it is per-C-state and
per-platform. The latter is for debugging purposes only.

The problem is that intel_idle prints the "forced intel_idle_irq"
message in both cases, even though the former case does not needed
this message, because nothing is forced there. This patch addresses the
problem.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Reviewed-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/idle/intel_idle.c

index 1de36df15d5a9de6602b0f05ffb32b0bda34e10b..bff0d17aeda4395be8f149ea25309763592b17ac 100644 (file)
@@ -1912,8 +1912,9 @@ static void __init intel_idle_init_cstates_icpu(struct cpuidle_driver *drv)
                         */
                        WARN_ON_ONCE(state->flags & CPUIDLE_FLAG_IRQ_ENABLE);
                        state->enter = intel_idle_ibrs;
-               } else if ((state->flags & CPUIDLE_FLAG_IRQ_ENABLE) ||
-                          force_irq_on) {
+               } else if (state->flags & CPUIDLE_FLAG_IRQ_ENABLE) {
+                       state->enter = intel_idle_irq;
+               } else if (force_irq_on) {
                        pr_info("forced intel_idle_irq for state %d\n", cstate);
                        state->enter = intel_idle_irq;
                }