Author: kib
Date: Sat May 19 20:26:33 2018
New Revision: 333891
URL: https://svnweb.freebsd.org/changeset/base/333891

Log:
  Fix IBRS handling around MWAIT.
  
  The intent was to disable IBPB and IBRS around MWAIT, and re-enable on
  the sleep end.
  
  Reviewed by:  emaste
  Sponsored by: The FreeBSD Foundation
  MFC after:    3 days

Modified:
  head/sys/x86/x86/cpu_machdep.c

Modified: head/sys/x86/x86/cpu_machdep.c
==============================================================================
--- head/sys/x86/x86/cpu_machdep.c      Sat May 19 19:53:23 2018        
(r333890)
+++ head/sys/x86/x86/cpu_machdep.c      Sat May 19 20:26:33 2018        
(r333891)
@@ -166,11 +166,11 @@ acpi_cpu_idle_mwait(uint32_t mwait_hint)
        KASSERT(atomic_load_int(state) == STATE_SLEEPING,
            ("cpu_mwait_cx: wrong monitorbuf state"));
        atomic_store_int(state, STATE_MWAIT);
-       handle_ibrs_entry();
+       handle_ibrs_exit();
        cpu_monitor(state, 0, 0);
        if (atomic_load_int(state) == STATE_MWAIT)
                cpu_mwait(MWAIT_INTRBREAK, mwait_hint);
-       handle_ibrs_exit();
+       handle_ibrs_entry();
 
        /*
         * We should exit on any event that interrupts mwait, because
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to