The branch releng/13.2 has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=878cd9623c8eaa747ec27269fec968b33b153e1d

commit 878cd9623c8eaa747ec27269fec968b33b153e1d
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2023-03-28 23:51:44 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2023-03-30 12:35:53 +0000

    amd64 wakeup: recalculate mitigations after APICs are woken
    
    PR:     270489
    Approved by:    re (cperciva)
    
    (cherry picked from commit cd137909c3097fe223ce2b49075eed42a4933bb5)
    (cherry picked from commit 738b20a47f7379b27ccf7a6d2af2c1bbfa11d05f)
---
 sys/amd64/acpica/acpi_wakeup.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/sys/amd64/acpica/acpi_wakeup.c b/sys/amd64/acpica/acpi_wakeup.c
index 3df4457550d6..62e11f5797f6 100644
--- a/sys/amd64/acpica/acpi_wakeup.c
+++ b/sys/amd64/acpica/acpi_wakeup.c
@@ -294,19 +294,21 @@ acpi_wakeup_machdep(struct acpi_softc *sc, int state, int 
sleep_result,
                 * in acpi_sleep_machdep(), after the microcode was
                 * reloaded.  Then recalculate the active mitigation
                 * knobs that depend on the microcode and
-                * cpu_stdext_feature3.
+                * cpu_stdext_feature3.  Do it after LAPICs are woken,
+                * so that IPIs work.
                 */
                identify_cpu_ext_features();
-               hw_ibrs_recalculate(true);
-               hw_ssb_recalculate(true);
-               amd64_syscall_ret_flush_l1d_recalc();
-               x86_rngds_mitg_recalculate(true);
 
                mca_resume();
                if (vmm_resume_p != NULL)
                        vmm_resume_p();
                intr_resume(/*suspend_cancelled*/false);
 
+               hw_ibrs_recalculate(true);
+               amd64_syscall_ret_flush_l1d_recalc();
+               hw_ssb_recalculate(true);
+               x86_rngds_mitg_recalculate(true);
+
                AcpiSetFirmwareWakingVector(0, 0);
        } else {
                /* Wakeup MD procedures in interrupt enabled context */

Reply via email to