summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2004-06-03 01:47:37 +0000
committertjr <tjr@FreeBSD.org>2004-06-03 01:47:37 +0000
commit7a46b27935d2825aabd5792cab33c94cc1096b0a (patch)
tree4ec923639b76e4b631bd73b4a91f5dd83dbbfce9 /sys/ia64
parentde0c6ecd474a085a3ee08011f10c2eb1c99fd0bc (diff)
downloadFreeBSD-src-7a46b27935d2825aabd5792cab33c94cc1096b0a.zip
FreeBSD-src-7a46b27935d2825aabd5792cab33c94cc1096b0a.tar.gz
Move TDF_DEADLKTREAT into td_pflags (and rename it accordingly) to avoid
having to acquire sched_lock when manipulating it in lockmgr(), uiomove(), and uiomove_fromphys(). Reviewed by: jhb
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/uio_machdep.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/sys/ia64/ia64/uio_machdep.c b/sys/ia64/ia64/uio_machdep.c
index 71da287..b6241b9 100644
--- a/sys/ia64/ia64/uio_machdep.c
+++ b/sys/ia64/ia64/uio_machdep.c
@@ -71,10 +71,8 @@ uiomove_fromphys(vm_page_t ma[], vm_offset_t offset, int n, struct uio *uio)
KASSERT(uio->uio_segflg != UIO_USERSPACE || uio->uio_td == curthread,
("uiomove_fromphys proc"));
if (td != NULL) {
- mtx_lock_spin(&sched_lock);
- save = td->td_flags & TDF_DEADLKTREAT;
- td->td_flags |= TDF_DEADLKTREAT;
- mtx_unlock_spin(&sched_lock);
+ save = td->td_pflags & TDP_DEADLKTREAT;
+ td->td_pflags |= TDP_DEADLKTREAT;
}
while (n > 0 && uio->uio_resid) {
iov = uio->uio_iov;
@@ -119,10 +117,7 @@ uiomove_fromphys(vm_page_t ma[], vm_offset_t offset, int n, struct uio *uio)
n -= cnt;
}
out:
- if (td != NULL && save == 0) {
- mtx_lock_spin(&sched_lock);
- td->td_flags &= ~TDF_DEADLKTREAT;
- mtx_unlock_spin(&sched_lock);
- }
+ if (td != NULL && save == 0)
+ td->td_pflags &= ~TDP_DEADLKTREAT;
return (error);
}
OpenPOWER on IntegriCloud