summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2003-04-17 22:38:27 +0000
committerjhb <jhb@FreeBSD.org>2003-04-17 22:38:27 +0000
commit5adc19ca856300e64baa903f2cf77e83c4c63470 (patch)
treecae1662a26a21acb695e0cee3e40bfdba76c4937 /sys/vm
parente1dd224437698f1eca740d7a6ba15189c97ccf2b (diff)
downloadFreeBSD-src-5adc19ca856300e64baa903f2cf77e83c4c63470.zip
FreeBSD-src-5adc19ca856300e64baa903f2cf77e83c4c63470.tar.gz
suser() does not need the proc lock, just the setting of P_PROTECTED in
p_flag needs the lock.
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_mmap.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
index d20756f..e414a50 100644
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -760,12 +760,13 @@ madvise(td, uap)
* "immortal."
*/
if (uap->behav == MADV_PROTECT) {
- p = td->td_proc;
- PROC_LOCK(p);
error = suser(td);
- if (error == 0)
+ if (error == 0) {
+ p = td->td_proc;
+ PROC_LOCK(p);
p->p_flag |= P_PROTECTED;
- PROC_UNLOCK(p);
+ PROC_UNLOCK(p);
+ }
return (error);
}
/*
OpenPOWER on IntegriCloud