Date: Mon, 14 Jun 2010 20:08:27 +0000 (UTC) From: Jung-uk Kim <jkim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r209174 - in head/sys/amd64: acpica amd64 Message-ID: <201006142008.o5EK8RJ2057258@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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();
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006142008.o5EK8RJ2057258>