Skip to content

Commit dfbba25

Browse files
akihikodakirafaeljw
authored andcommitted
Revert "ACPI: processor: idle: Only flush cache on entering C3"
Revert commit 87ebbb8 ("ACPI: processor: idle: Only flush cache on entering C3") that broke the assumptions of the acpi_idle_play_dead() callers. Namely, the CPU cache must always be flushed in acpi_idle_play_dead(), regardless of the target C-state that is going to be requested, because this is likely to be part of a CPU offline procedure or preparation for entering a system-wide sleep state and the lack of synchronization between the CPU cache and RAM may lead to problems going forward, for example when the CPU is brought back online. In particular, it breaks resume from suspend-to-RAM on Lenovo ThinkPad C13 which fails occasionally until the problematic commit is reverted. Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com> [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent 3123109 commit dfbba25

1 file changed

Lines changed: 1 addition & 2 deletions

File tree

drivers/acpi/processor_idle.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -570,8 +570,7 @@ static int acpi_idle_play_dead(struct cpuidle_device *dev, int index)
570570
{
571571
struct acpi_processor_cx *cx = per_cpu(acpi_cstate[index], dev->cpu);
572572

573-
if (cx->type == ACPI_STATE_C3)
574-
ACPI_FLUSH_CPU_CACHE();
573+
ACPI_FLUSH_CPU_CACHE();
575574

576575
while (1) {
577576

0 commit comments

Comments
 (0)