summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2012-03-30 17:03:06 +0000
committerjkim <jkim@FreeBSD.org>2012-03-30 17:03:06 +0000
commit95442a8d4060729a622715e850786a53276fd123 (patch)
tree7c288f80b8a9dca0048a787d968bd4b6c1b922e9 /sys/amd64
parent6cd4f250111b610bf48172c9845d9bf88ea97fca (diff)
downloadFreeBSD-src-95442a8d4060729a622715e850786a53276fd123.zip
FreeBSD-src-95442a8d4060729a622715e850786a53276fd123.tar.gz
Re-initialize model-specific MSRs when we resume CPUs.
MFC after: 1 week
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/acpica/acpi_wakeup.c1
-rw-r--r--sys/amd64/amd64/mp_machdep.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/sys/amd64/acpica/acpi_wakeup.c b/sys/amd64/acpica/acpi_wakeup.c
index 6b41e95..a96f1bf 100644
--- a/sys/amd64/acpica/acpi_wakeup.c
+++ b/sys/amd64/acpica/acpi_wakeup.c
@@ -284,6 +284,7 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state)
} else {
pmap_init_pat();
load_cr3(susppcbs[0]->pcb_cr3);
+ initializecpu();
PCPU_SET(switchtime, 0);
PCPU_SET(switchticks, ticks);
#ifdef SMP
diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c
index 2c52fd1..043d5af 100644
--- a/sys/amd64/amd64/mp_machdep.c
+++ b/sys/amd64/amd64/mp_machdep.c
@@ -1425,6 +1425,7 @@ cpususpend_handler(void)
} else {
pmap_init_pat();
load_cr3(susppcbs[cpu]->pcb_cr3);
+ initializecpu();
PCPU_SET(switchtime, 0);
PCPU_SET(switchticks, ticks);
}
OpenPOWER on IntegriCloud