Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/uvm Explicitly return syscall-specific error codes, inst...



details:   https://anonhg.NetBSD.org/src/rev/abd8a2276a99
branches:  trunk
changeset: 346935:abd8a2276a99
user:      maxv <maxv%NetBSD.org@localhost>
date:      Sun Aug 07 09:55:18 2016 +0000

description:
Explicitly return syscall-specific error codes, instead of the ones given
by range_test. This fixes msync, mlock and munlock, which all return EINVAL
instead of ENOMEM if the address is not in the va space.

It should also fix the recent ATF failures.

diffstat:

 sys/uvm/uvm_mmap.c |  18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

diffs (81 lines):

diff -r 98f708f3c918 -r abd8a2276a99 sys/uvm/uvm_mmap.c
--- a/sys/uvm/uvm_mmap.c        Sun Aug 07 09:04:55 2016 +0000
+++ b/sys/uvm/uvm_mmap.c        Sun Aug 07 09:55:18 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uvm_mmap.c,v 1.159 2016/06/01 12:14:08 pgoyette Exp $  */
+/*     $NetBSD: uvm_mmap.c,v 1.160 2016/08/07 09:55:18 maxv Exp $      */
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -46,7 +46,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_mmap.c,v 1.159 2016/06/01 12:14:08 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_mmap.c,v 1.160 2016/08/07 09:55:18 maxv Exp $");
 
 #include "opt_compat_netbsd.h"
 #include "opt_pax.h"
@@ -489,7 +489,7 @@
 
        error = range_test(map, addr, size, false);
        if (error)
-               return error;
+               return ENOMEM;
 
        /*
         * XXXCDC: do we really need this semantic?
@@ -571,7 +571,7 @@
 
        error = range_test(map, addr, size, false);
        if (error)
-               return error;
+               return EINVAL;
 
        /*
         * interesting system call semantic: make sure entire range is
@@ -630,7 +630,7 @@
 
        error = range_test(&p->p_vmspace->vm_map, addr, size, false);
        if (error)
-               return error;
+               return EINVAL;
 
        error = uvm_map_protect(&p->p_vmspace->vm_map, addr, addr + size, prot,
                                false);
@@ -671,7 +671,7 @@
 
        error = range_test(&p->p_vmspace->vm_map, addr, size, false);
        if (error)
-               return error;
+               return EINVAL;
 
        error = uvm_map_inherit(&p->p_vmspace->vm_map, addr, addr + size,
                                inherit);
@@ -712,7 +712,7 @@
 
        error = range_test(&p->p_vmspace->vm_map, addr, size, false);
        if (error)
-               return error;
+               return EINVAL;
 
        switch (advice) {
        case MADV_NORMAL:
@@ -812,7 +812,7 @@
 
        error = range_test(&p->p_vmspace->vm_map, addr, size, false);
        if (error)
-               return error;
+               return ENOMEM;
 
        if (atop(size) + uvmexp.wired > uvmexp.wiredmax)
                return (EAGAIN);
@@ -863,7 +863,7 @@
 
        error = range_test(&p->p_vmspace->vm_map, addr, size, false);
        if (error)
-               return error;
+               return ENOMEM;
 
        error = uvm_map_pageable(&p->p_vmspace->vm_map, addr, addr+size, true,
            0);



Home | Main Index | Thread Index | Old Index