diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index 66393d5..ee72bbb 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c @@ -895,7 +895,7 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, */ lapic_timer_state_broadcast(pr, cx, 1); - if (cx->type == ACPI_STATE_C3) + if (cx->type == ACPI_STATE_C3 && !pr->flags.bm_check) ACPI_FLUSH_CPU_CACHE(); kt1 = ktime_get_real(); @@ -1110,6 +1110,8 @@ static int acpi_processor_setup_cpuidle(struct acpi_processor *pr) state->enter = pr->flags.bm_check ? acpi_idle_enter_bm : acpi_idle_enter_simple; + if (pr->flags.bm_check && !pr->flags.bm_control) + state->enter = acpi_idle_enter_simple; break; }