mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 00:32:25 -04:00
MFi386 1.222: Remove vm_map_growstack() and acquisition and release of Giant
around vm_fault() in trap_pfault().
This commit is contained in:
parent
7df187a3ad
commit
72ba293d78
2 changed files with 4 additions and 34 deletions
|
|
@ -479,7 +479,6 @@ trap_pfault(struct trapframe *frame, int user)
|
|||
}
|
||||
va = trunc_page(eva);
|
||||
|
||||
mtx_lock(&Giant);
|
||||
if (map != kernel_map) {
|
||||
/*
|
||||
* Keep swapout from messing with us during this
|
||||
|
|
@ -489,20 +488,8 @@ trap_pfault(struct trapframe *frame, int user)
|
|||
++p->p_lock;
|
||||
PROC_UNLOCK(p);
|
||||
|
||||
/*
|
||||
* Grow the stack if necessary
|
||||
*/
|
||||
/* vm_map_growstack returns failure 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);
|
||||
|
||||
|
|
@ -516,8 +503,6 @@ trap_pfault(struct trapframe *frame, int user)
|
|||
*/
|
||||
rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL);
|
||||
}
|
||||
mtx_unlock(&Giant);
|
||||
|
||||
if (rv == KERN_SUCCESS)
|
||||
return (0);
|
||||
|
||||
|
|
|
|||
|
|
@ -479,7 +479,6 @@ trap_pfault(struct trapframe *frame, int user)
|
|||
}
|
||||
va = trunc_page(eva);
|
||||
|
||||
mtx_lock(&Giant);
|
||||
if (map != kernel_map) {
|
||||
/*
|
||||
* Keep swapout from messing with us during this
|
||||
|
|
@ -489,20 +488,8 @@ trap_pfault(struct trapframe *frame, int user)
|
|||
++p->p_lock;
|
||||
PROC_UNLOCK(p);
|
||||
|
||||
/*
|
||||
* Grow the stack if necessary
|
||||
*/
|
||||
/* vm_map_growstack returns failure 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);
|
||||
|
||||
|
|
@ -516,8 +503,6 @@ trap_pfault(struct trapframe *frame, int user)
|
|||
*/
|
||||
rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL);
|
||||
}
|
||||
mtx_unlock(&Giant);
|
||||
|
||||
if (rv == KERN_SUCCESS)
|
||||
return (0);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue