diff options
author | tegge <tegge@FreeBSD.org> | 1998-03-14 03:02:15 +0000 |
---|---|---|
committer | tegge <tegge@FreeBSD.org> | 1998-03-14 03:02:15 +0000 |
commit | 96bdd3ac5e10d5a7465fb4bf3ffb8351bbd527e9 (patch) | |
tree | 615dbec655dc12e66672932eb9db85a65e8c1390 | |
parent | fca0f926304dc460738db155c1313999fbf0545e (diff) | |
download | FreeBSD-src-96bdd3ac5e10d5a7465fb4bf3ffb8351bbd527e9.zip FreeBSD-src-96bdd3ac5e10d5a7465fb4bf3ffb8351bbd527e9.tar.gz |
Don't use the standard macros for disabling/enabling interrupt.
On SMP systems, this left the mpintr_lock simplelock locked, causing
further calls to disable_intr to deadlock or panic.
-rw-r--r-- | sys/amd64/amd64/vm_machdep.c | 6 | ||||
-rw-r--r-- | sys/i386/i386/vm_machdep.c | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c index 4c0533d..56e9d2f 100644 --- a/sys/amd64/amd64/vm_machdep.c +++ b/sys/amd64/amd64/vm_machdep.c @@ -38,7 +38,7 @@ * * from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91 * Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$ - * $Id: vm_machdep.c,v 1.101 1998/02/25 03:56:09 dyson Exp $ + * $Id: vm_machdep.c,v 1.102 1998/03/12 09:55:57 bde Exp $ */ #include "npx.h" @@ -949,7 +949,7 @@ vm_page_zero_idle() if (try_mplock()) { #endif s = splvm(); - enable_intr(); + __asm __volatile("sti" : : : "memory"); m = vm_page_list_find(PQ_FREE, free_rover); if (m != NULL) { --(*vm_page_queues[m->queue].lcnt); @@ -973,7 +973,7 @@ vm_page_zero_idle() ++cnt_prezero; } splx(s); - disable_intr(); + __asm __volatile("cli" : : : "memory"); #ifdef SMP rel_mplock(); #endif diff --git a/sys/i386/i386/vm_machdep.c b/sys/i386/i386/vm_machdep.c index 4c0533d..56e9d2f 100644 --- a/sys/i386/i386/vm_machdep.c +++ b/sys/i386/i386/vm_machdep.c @@ -38,7 +38,7 @@ * * from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91 * Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$ - * $Id: vm_machdep.c,v 1.101 1998/02/25 03:56:09 dyson Exp $ + * $Id: vm_machdep.c,v 1.102 1998/03/12 09:55:57 bde Exp $ */ #include "npx.h" @@ -949,7 +949,7 @@ vm_page_zero_idle() if (try_mplock()) { #endif s = splvm(); - enable_intr(); + __asm __volatile("sti" : : : "memory"); m = vm_page_list_find(PQ_FREE, free_rover); if (m != NULL) { --(*vm_page_queues[m->queue].lcnt); @@ -973,7 +973,7 @@ vm_page_zero_idle() ++cnt_prezero; } splx(s); - disable_intr(); + __asm __volatile("cli" : : : "memory"); #ifdef SMP rel_mplock(); #endif |