diff options
author | jhb <jhb@FreeBSD.org> | 2001-07-03 05:09:48 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2001-07-03 05:09:48 +0000 |
commit | f43dc7e223b904d972a08ea114e0743d001e5a63 (patch) | |
tree | 726019257f0c89e974c9b19bb1489a864e52a618 /sys | |
parent | 54186427e0e1a77689aed1524c4470172b069845 (diff) | |
download | FreeBSD-src-f43dc7e223b904d972a08ea114e0743d001e5a63.zip FreeBSD-src-f43dc7e223b904d972a08ea114e0743d001e5a63.tar.gz |
Allow Giant to be recursed when a process terminates.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/alpha/alpha/vm_machdep.c | 4 | ||||
-rw-r--r-- | sys/amd64/amd64/vm_machdep.c | 4 | ||||
-rw-r--r-- | sys/i386/i386/vm_machdep.c | 4 | ||||
-rw-r--r-- | sys/ia64/ia64/vm_machdep.c | 4 | ||||
-rw-r--r-- | sys/powerpc/aim/vm_machdep.c | 4 | ||||
-rw-r--r-- | sys/powerpc/powerpc/vm_machdep.c | 4 |
6 files changed, 12 insertions, 12 deletions
diff --git a/sys/alpha/alpha/vm_machdep.c b/sys/alpha/alpha/vm_machdep.c index 862e25b..216e5a4 100644 --- a/sys/alpha/alpha/vm_machdep.c +++ b/sys/alpha/alpha/vm_machdep.c @@ -251,8 +251,8 @@ cpu_exit(p) PROC_LOCK(p); mtx_lock_spin(&sched_lock); - mtx_unlock_flags(&Giant, MTX_NOSWITCH); - mtx_assert(&Giant, MA_NOTOWNED); + while (mtx_owned(&Giant)) + mtx_unlock_flags(&Giant, MTX_NOSWITCH); /* * We have to wait until after releasing all locks before diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c index 40ae8cd..e26d211 100644 --- a/sys/amd64/amd64/vm_machdep.c +++ b/sys/amd64/amd64/vm_machdep.c @@ -269,8 +269,8 @@ cpu_exit(p) } PROC_LOCK(p); mtx_lock_spin(&sched_lock); - mtx_unlock_flags(&Giant, MTX_NOSWITCH); - mtx_assert(&Giant, MA_NOTOWNED); + while (mtx_owned(&Giant)) + mtx_unlock_flags(&Giant, MTX_NOSWITCH); /* * We have to wait until after releasing all locks before diff --git a/sys/i386/i386/vm_machdep.c b/sys/i386/i386/vm_machdep.c index 40ae8cd..e26d211 100644 --- a/sys/i386/i386/vm_machdep.c +++ b/sys/i386/i386/vm_machdep.c @@ -269,8 +269,8 @@ cpu_exit(p) } PROC_LOCK(p); mtx_lock_spin(&sched_lock); - mtx_unlock_flags(&Giant, MTX_NOSWITCH); - mtx_assert(&Giant, MA_NOTOWNED); + while (mtx_owned(&Giant)) + mtx_unlock_flags(&Giant, MTX_NOSWITCH); /* * We have to wait until after releasing all locks before diff --git a/sys/ia64/ia64/vm_machdep.c b/sys/ia64/ia64/vm_machdep.c index 2ca0292..4f50ba0 100644 --- a/sys/ia64/ia64/vm_machdep.c +++ b/sys/ia64/ia64/vm_machdep.c @@ -290,8 +290,8 @@ cpu_exit(p) PROC_LOCK(p); mtx_lock_spin(&sched_lock); - mtx_unlock_flags(&Giant, MTX_NOSWITCH); - mtx_assert(&Giant, MA_NOTOWNED); + while (mtx_owned(&Giant)) + mtx_unlock_flags(&Giant, MTX_NOSWITCH); /* * We have to wait until after releasing all locks before diff --git a/sys/powerpc/aim/vm_machdep.c b/sys/powerpc/aim/vm_machdep.c index 11bdf09..c281ef1 100644 --- a/sys/powerpc/aim/vm_machdep.c +++ b/sys/powerpc/aim/vm_machdep.c @@ -161,8 +161,8 @@ cpu_exit(p) { PROC_LOCK(p); mtx_lock_spin(&sched_lock); - mtx_unlock_flags(&Giant, MTX_NOSWITCH); - mtx_assert(&Giant, MA_NOTOWNED); + while (mtx_owned(&Giant)) + mtx_unlock_flags(&Giant, MTX_NOSWITCH); /* * We have to wait until after releasing all locks before diff --git a/sys/powerpc/powerpc/vm_machdep.c b/sys/powerpc/powerpc/vm_machdep.c index 11bdf09..c281ef1 100644 --- a/sys/powerpc/powerpc/vm_machdep.c +++ b/sys/powerpc/powerpc/vm_machdep.c @@ -161,8 +161,8 @@ cpu_exit(p) { PROC_LOCK(p); mtx_lock_spin(&sched_lock); - mtx_unlock_flags(&Giant, MTX_NOSWITCH); - mtx_assert(&Giant, MA_NOTOWNED); + while (mtx_owned(&Giant)) + mtx_unlock_flags(&Giant, MTX_NOSWITCH); /* * We have to wait until after releasing all locks before |