Page MenuHomeFreeBSD

D39302.diff
No OneTemporary

D39302.diff

diff --git a/sys/amd64/acpica/acpi_wakeup.c b/sys/amd64/acpica/acpi_wakeup.c
--- a/sys/amd64/acpica/acpi_wakeup.c
+++ b/sys/amd64/acpica/acpi_wakeup.c
@@ -294,19 +294,21 @@
* 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 */

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 8, 3:14 PM (16 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17429876
Default Alt Text
D39302.diff (977 B)

Event Timeline