diff options
author | jkim <jkim@FreeBSD.org> | 2010-07-26 19:53:09 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2010-07-26 19:53:09 +0000 |
commit | 48a6a38cdceac157ad249834defe382c21e39f7d (patch) | |
tree | 9183d2c80109a896ebadce43f6a4516a52e9f275 /sys/amd64/acpica/acpi_wakeup.c | |
parent | 488a727a00e4e0a41095d9f56222741550a97d92 (diff) | |
download | FreeBSD-src-48a6a38cdceac157ad249834defe382c21e39f7d.zip FreeBSD-src-48a6a38cdceac157ad249834defe382c21e39f7d.tar.gz |
Re-implement FPU suspend/resume for amd64. This removes superfluous uses
of critical_enter(9) and critical_exit(9) by fpugetregs() and fpusetregs().
Also, we do not touch PCB flags any more.
MFC after: 1 month
Diffstat (limited to 'sys/amd64/acpica/acpi_wakeup.c')
-rw-r--r-- | sys/amd64/acpica/acpi_wakeup.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/sys/amd64/acpica/acpi_wakeup.c b/sys/amd64/acpica/acpi_wakeup.c index 5c35593..982809b 100644 --- a/sys/amd64/acpica/acpi_wakeup.c +++ b/sys/amd64/acpica/acpi_wakeup.c @@ -216,7 +216,6 @@ acpi_wakeup_cpus(struct acpi_softc *sc, cpumask_t wakeup_cpus) int acpi_sleep_machdep(struct acpi_softc *sc, int state) { - struct savefpu *stopfpu; #ifdef SMP cpumask_t wakeup_cpus; #endif @@ -246,10 +245,7 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) cr3 = rcr3(); load_cr3(KPML4phys); - stopfpu = &stopxpcbs[0]->xpcb_pcb.pcb_user_save; if (acpi_savecpu(stopxpcbs[0])) { - fpugetregs(curthread, stopfpu); - #ifdef SMP if (wakeup_cpus != 0 && suspend_cpus(wakeup_cpus) == 0) { device_printf(sc->acpi_dev, @@ -285,7 +281,6 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) for (;;) ia32_pause(); } else { - fpusetregs(curthread, stopfpu); #ifdef SMP if (wakeup_cpus != 0) acpi_wakeup_cpus(sc, wakeup_cpus); |