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
This commit is contained in:
parent
892bdccca0
commit
7c25320c69
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user