]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
cpuidle: use first valid target residency as poll time
authorMarcelo Tosatti <mtosatti@redhat.com>
Fri, 6 Dec 2019 15:07:41 +0000 (13:07 -0200)
committerSeth Forshee <seth.forshee@canonical.com>
Mon, 6 Jan 2020 13:33:26 +0000 (07:33 -0600)
BugLink: https://bugs.launchpad.net/bugs/1858424
commit 36fcb4292473cb9c9ce7706d038bcf0eda5cabeb upstream.

Commit 259231a04561 ("cpuidle: add poll_limit_ns to cpuidle_device
structure") changed, by mistake, the target residency from the first
available sleep state to the last available sleep state (which should
be longer).

This might cause excessive polling.

Fixes: 259231a04561 ("cpuidle: add poll_limit_ns to cpuidle_device structure")
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Cc: 5.4+ <stable@vger.kernel.org> # 5.4+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
drivers/cpuidle/cpuidle.c

index 0895b988fa92246d655b35d3af6e11f237f243e3..29d2d7a21bd7bad0030e3840fd77ea4b871b2c55 100644 (file)
@@ -384,6 +384,7 @@ u64 cpuidle_poll_time(struct cpuidle_driver *drv,
                        continue;
 
                limit_ns = (u64)drv->states[i].target_residency * NSEC_PER_USEC;
+               break;
        }
 
        dev->poll_limit_ns = limit_ns;