diff --git a/sys/dev/acpica/acpi_cpu.c b/sys/dev/acpica/acpi_cpu.c --- a/sys/dev/acpica/acpi_cpu.c +++ b/sys/dev/acpica/acpi_cpu.c @@ -396,6 +396,13 @@ */ if (!acpi_disabled("mwait") && cpu_mwait_usable()) sc->cpu_features |= ACPI_CAP_SMP_C1_NATIVE | ACPI_CAP_SMP_C3_NATIVE; + + /* + * Work around a lingering SMM bug which leads to freezes when handling + * CPPC notifications. Tell the SMM we will handle any CPPC notifications. + */ + if (cpu_power_eax & CPUTPM1_HWP_NOTIFICATION) + sc->cpu_features |= ACPI_CAP_INTR_CPPC; #endif if (devclass_get_drivers(device_get_devclass(dev), &drivers,