freebsd-dev/sys/x86
Konstantin Belousov bd101a6648 Ensure that resume path on amd64 only accesses page tables for normal
operation after processor is configured to allow all required
features.

In particular, NX must be enabled in EFER, otherwise load of page
table element with nx bit set causes reserved bit page fault.  Since
malloc uses direct mapping for small allocations, in particular for
the suspension pcbs, and DMAP is nx after r316767, this commit tripped
fault on resume path.

Restore complete state of EFER while wakeup code is still executing
with custom page table, before calling resumectx, instead of trying to
guess which features might be needed before resumectx restored EFER on
its own.

Bisected and tested by:	trasz
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2017-05-15 20:52:43 +00:00
..
acpica Ensure that resume path on amd64 only accesses page tables for normal 2017-05-15 20:52:43 +00:00
bios
cpufreq - Mention mismatching numbers in MSR vs. ACPI _PSS count warning: seeing 2016-12-01 14:31:05 +00:00
include Remove the LSOL26CALLS_SEL constant. 2017-04-25 23:19:27 +00:00
iommu Correct calculation of the entry->free_down in the invariants-checking 2017-04-14 15:16:41 +00:00
isa Validate values read from the RTC before trying BCD decoding 2017-03-09 02:19:30 +00:00
pci Convert PCIe Hot Plug to using pci_request_feature 2017-02-25 06:11:59 +00:00
x86 x86 MCA: Fix a deadlock in MCA exception processing 2017-04-28 18:25:10 +00:00
xen All these files need sys/vmmeter.h, but now they got it implicitly 2017-04-17 17:07:00 +00:00