aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Cox <alc@FreeBSD.org>2002-04-19 02:08:33 +0000
committerAlan Cox <alc@FreeBSD.org>2002-04-19 02:08:33 +0000
commit3c3f826d7e003fc9244939dd7a93f369a92aedca (patch)
tree179880429c7f9017f86118ac23900983c5ef4599
parent0a371dd9f327e08daf9dc6ea5a8f195fc9125025 (diff)
downloadsrc-3c3f826d7e003fc9244939dd7a93f369a92aedca.tar.gz
src-3c3f826d7e003fc9244939dd7a93f369a92aedca.zip
o Remove vm_map_growstack() from ia64's trap_pfault().
o Remove the acquisition and release of Giant from ia64's trap_pfault(). (vm_fault() still acquires it.)
Notes
Notes: svn path=/head/; revision=95019
-rw-r--r--sys/ia64/ia64/trap.c18
1 files changed, 2 insertions, 16 deletions
diff --git a/sys/ia64/ia64/trap.c b/sys/ia64/ia64/trap.c
index 1283899b6db6..eac72728a249 100644
--- a/sys/ia64/ia64/trap.c
+++ b/sys/ia64/ia64/trap.c
@@ -540,7 +540,6 @@ trap(int vector, int imm, struct trapframe *framep)
td->td_pcb->pcb_onfault = 0;
goto out;
}
- mtx_lock(&Giant);
/*
* It is only a kernel address space fault iff:
@@ -592,20 +591,8 @@ trap(int vector, int imm, struct trapframe *framep)
++p->p_lock;
PROC_UNLOCK(p);
- /*
- * Grow the stack if necessary
- */
- /* vm_map_growstack fails only if va falls into
- * a growable stack region and the stack growth
- * fails. It succeeds if va was not within
- * a growable stack region, or if the stack
- * growth succeeded.
- */
- if (vm_map_growstack(p, va) != KERN_SUCCESS)
- rv = KERN_FAILURE;
- else
- /* Fault in the user page: */
- rv = vm_fault(map, va, ftype,
+ /* Fault in the user page: */
+ rv = vm_fault(map, va, ftype,
(ftype & VM_PROT_WRITE)
? VM_FAULT_DIRTY
: VM_FAULT_NORMAL);
@@ -620,7 +607,6 @@ trap(int vector, int imm, struct trapframe *framep)
*/
rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL);
}
- mtx_unlock(&Giant);
if (rv == KERN_SUCCESS)
goto out;