Deleted Added
full compact
subr_syscall.c (22975) subr_syscall.c (24666)
1/*-
2 * Copyright (C) 1994, David Greenman
3 * Copyright (c) 1990, 1993
4 * The Regents of the University of California. All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * the University of Utah, and William Jolitz.
8 *

--- 21 unchanged lines hidden (view full) ---

30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 * SUCH DAMAGE.
36 *
37 * from: @(#)trap.c 7.4 (Berkeley) 5/13/91
1/*-
2 * Copyright (C) 1994, David Greenman
3 * Copyright (c) 1990, 1993
4 * The Regents of the University of California. All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * the University of Utah, and William Jolitz.
8 *

--- 21 unchanged lines hidden (view full) ---

30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 * SUCH DAMAGE.
36 *
37 * from: @(#)trap.c 7.4 (Berkeley) 5/13/91
38 * $Id$
38 * $Id: trap.c,v 1.88 1997/02/22 09:32:55 peter Exp $
39 */
40
41/*
42 * 386 Trap and System call handling
43 */
44
45#include "opt_ktrace.h"
46#include "opt_ddb.h"

--- 477 unchanged lines hidden (view full) ---

524 if (!grow(p, va)) {
525 rv = KERN_FAILURE;
526 --p->p_lock;
527 goto nogo;
528 }
529 }
530
531 /* Fault in the user page: */
39 */
40
41/*
42 * 386 Trap and System call handling
43 */
44
45#include "opt_ktrace.h"
46#include "opt_ddb.h"

--- 477 unchanged lines hidden (view full) ---

524 if (!grow(p, va)) {
525 rv = KERN_FAILURE;
526 --p->p_lock;
527 goto nogo;
528 }
529 }
530
531 /* Fault in the user page: */
532 rv = vm_fault(map, va, ftype, FALSE);
532 rv = vm_fault(map, va, ftype,
533 (ftype & VM_PROT_WRITE) ? VM_FAULT_DIRTY : 0);
533
534 --p->p_lock;
535 } else {
536 /*
537 * Don't allow user-mode faults in kernel address space.
538 */
539 if (usermode)
540 goto nogo;

--- 84 unchanged lines hidden (view full) ---

625 if (!grow(p, va)) {
626 rv = KERN_FAILURE;
627 --p->p_lock;
628 goto nogo;
629 }
630 }
631
632 /* Fault in the user page: */
534
535 --p->p_lock;
536 } else {
537 /*
538 * Don't allow user-mode faults in kernel address space.
539 */
540 if (usermode)
541 goto nogo;

--- 84 unchanged lines hidden (view full) ---

626 if (!grow(p, va)) {
627 rv = KERN_FAILURE;
628 --p->p_lock;
629 goto nogo;
630 }
631 }
632
633 /* Fault in the user page: */
633 rv = vm_fault(map, va, ftype, FALSE);
634 rv = vm_fault(map, va, ftype,
635 (ftype & VM_PROT_WRITE) ? VM_FAULT_DIRTY : 0);
634
635 --p->p_lock;
636 } else {
637 /*
636
637 --p->p_lock;
638 } else {
639 /*
638 * Since we know that kernel virtual address addresses
639 * always have pte pages mapped, we just have to fault
640 * the page.
640 * Don't have to worry about process locking or stacks in the kernel.
641 */
642 rv = vm_fault(map, va, ftype, FALSE);
643 }
644
645 if (rv == KERN_SUCCESS)
646 return (0);
647nogo:
648 if (!usermode) {

--- 154 unchanged lines hidden (view full) ---

803 --p->p_lock;
804 return (1);
805 }
806 }
807
808 /*
809 * fault the data page
810 */
641 */
642 rv = vm_fault(map, va, ftype, FALSE);
643 }
644
645 if (rv == KERN_SUCCESS)
646 return (0);
647nogo:
648 if (!usermode) {

--- 154 unchanged lines hidden (view full) ---

803 --p->p_lock;
804 return (1);
805 }
806 }
807
808 /*
809 * fault the data page
810 */
811 rv = vm_fault(&vm->vm_map, va, VM_PROT_READ|VM_PROT_WRITE, FALSE);
811 rv = vm_fault(&vm->vm_map, va, VM_PROT_READ|VM_PROT_WRITE, VM_FAULT_DIRTY);
812
813 --p->p_lock;
814
815 if (rv != KERN_SUCCESS)
816 return 1;
817
818 return (0);
819}

--- 121 unchanged lines hidden ---
812
813 --p->p_lock;
814
815 if (rv != KERN_SUCCESS)
816 return 1;
817
818 return (0);
819}

--- 121 unchanged lines hidden ---