diff options
author | alc <alc@FreeBSD.org> | 2002-12-04 18:40:39 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-12-04 18:40:39 +0000 |
commit | 23c63c0ea95f425ca7f300fe99237f7041b547bf (patch) | |
tree | 47629f311353919564a999634835fafb42b24940 /sys | |
parent | 973fa389808a92d18074561e8df0b519ba1ae992 (diff) | |
download | FreeBSD-src-23c63c0ea95f425ca7f300fe99237f7041b547bf.zip FreeBSD-src-23c63c0ea95f425ca7f300fe99237f7041b547bf.tar.gz |
Hold the page queues lock around calls to pmap_remove().
Approved by: re
Diffstat (limited to 'sys')
-rw-r--r-- | sys/amd64/acpica/acpi_wakeup.c | 2 | ||||
-rw-r--r-- | sys/i386/acpica/acpi_wakeup.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/sys/amd64/acpica/acpi_wakeup.c b/sys/amd64/acpica/acpi_wakeup.c index 53c16a4..a2e260b 100644 --- a/sys/amd64/acpica/acpi_wakeup.c +++ b/sys/amd64/acpica/acpi_wakeup.c @@ -277,7 +277,9 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) } out: + vm_page_lock_queues(); pmap_remove(pm, sc->acpi_wakephys, sc->acpi_wakephys + PAGE_SIZE); + vm_page_unlock_queues(); if (opage) { pmap_enter(pm, sc->acpi_wakephys, page, VM_PROT_READ | VM_PROT_WRITE, 0); diff --git a/sys/i386/acpica/acpi_wakeup.c b/sys/i386/acpica/acpi_wakeup.c index 53c16a4..a2e260b 100644 --- a/sys/i386/acpica/acpi_wakeup.c +++ b/sys/i386/acpica/acpi_wakeup.c @@ -277,7 +277,9 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) } out: + vm_page_lock_queues(); pmap_remove(pm, sc->acpi_wakephys, sc->acpi_wakephys + PAGE_SIZE); + vm_page_unlock_queues(); if (opage) { pmap_enter(pm, sc->acpi_wakephys, page, VM_PROT_READ | VM_PROT_WRITE, 0); |