Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 May 2018 20:26:33 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r333891 - head/sys/x86/x86
Message-ID:  <201805192026.w4JKQXVQ025685@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805192026.w4JKQXVQ025685>