Skip site navigation (1)Skip section navigation (2)
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>