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.)
This commit is contained in:
Alan Cox 2002-04-19 02:08:33 +00:00
parent 0a371dd9f3
commit 3c3f826d7e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=95019

View File

@ -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;