svn commit: r209174 - in head/sys/amd64: acpica amd64
Jung-uk Kim
jkim at FreeBSD.org
Mon Jun 14 20:08:27 UTC 2010
Author: jkim
Date: Mon Jun 14 20:08:26 2010
New Revision: 209174
URL: http://svn.freebsd.org/changeset/base/209174
Log:
Fix ACPI suspend/resume on amd64, which was broken since r208833.
We need actual storage for FPU state to save and restore.
Modified:
head/sys/amd64/acpica/acpi_wakeup.c
head/sys/amd64/amd64/mp_machdep.c
Modified: head/sys/amd64/acpica/acpi_wakeup.c
==============================================================================
--- head/sys/amd64/acpica/acpi_wakeup.c Mon Jun 14 19:54:19 2010 (r209173)
+++ head/sys/amd64/acpica/acpi_wakeup.c Mon Jun 14 20:08:26 2010 (r209174)
@@ -245,7 +245,7 @@ acpi_sleep_machdep(struct acpi_softc *sc
cr3 = rcr3();
load_cr3(KPML4phys);
- stopfpu = stopxpcbs[0]->xpcb_pcb.pcb_save;
+ stopfpu = &stopxpcbs[0]->xpcb_pcb.pcb_user_save;
if (acpi_savecpu(stopxpcbs[0])) {
fpugetregs(curthread, stopfpu);
Modified: head/sys/amd64/amd64/mp_machdep.c
==============================================================================
--- head/sys/amd64/amd64/mp_machdep.c Mon Jun 14 19:54:19 2010 (r209173)
+++ head/sys/amd64/amd64/mp_machdep.c Mon Jun 14 20:08:26 2010 (r209174)
@@ -1247,7 +1247,7 @@ cpususpend_handler(void)
rf = intr_disable();
cr3 = rcr3();
- stopfpu = stopxpcbs[cpu]->xpcb_pcb.pcb_save;
+ stopfpu = &stopxpcbs[cpu]->xpcb_pcb.pcb_user_save;
if (savectx2(stopxpcbs[cpu])) {
fpugetregs(curthread, stopfpu);
wbinvd();
More information about the svn-src-head
mailing list