Author: kib
Date: Fri Dec 13 06:29:02 2013
New Revision: 259300
URL: http://svnweb.freebsd.org/changeset/base/259300

Log:
  MFC r258367:
  Verify for zero-length requests and act as if it is always successfull
  without performing any action on the address space.

Modified:
  stable/9/sys/vm/vm_map.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/vm/vm_map.c
==============================================================================
--- stable/9/sys/vm/vm_map.c    Fri Dec 13 06:28:18 2013        (r259299)
+++ stable/9/sys/vm/vm_map.c    Fri Dec 13 06:29:02 2013        (r259300)
@@ -1894,6 +1894,9 @@ vm_map_protect(vm_map_t map, vm_offset_t
        struct ucred *cred;
        vm_prot_t old_prot;
 
+       if (start == end)
+               return (KERN_SUCCESS);
+
        vm_map_lock(map);
 
        VM_MAP_RANGE_CHECK(map, start, end);
@@ -2048,12 +2051,16 @@ vm_map_madvise(
        case MADV_AUTOSYNC:
        case MADV_NOCORE:
        case MADV_CORE:
+               if (start == end)
+                       return (KERN_SUCCESS);
                modify_map = 1;
                vm_map_lock(map);
                break;
        case MADV_WILLNEED:
        case MADV_DONTNEED:
        case MADV_FREE:
+               if (start == end)
+                       return (KERN_SUCCESS);
                vm_map_lock_read(map);
                break;
        default:
@@ -2191,6 +2198,8 @@ vm_map_inherit(vm_map_t map, vm_offset_t
        default:
                return (KERN_INVALID_ARGUMENT);
        }
+       if (start == end)
+               return (KERN_SUCCESS);
        vm_map_lock(map);
        VM_MAP_RANGE_CHECK(map, start, end);
        if (vm_map_lookup_entry(map, start, &temp_entry)) {
@@ -2223,6 +2232,8 @@ vm_map_unwire(vm_map_t map, vm_offset_t 
        int rv;
        boolean_t need_wakeup, result, user_unwire;
 
+       if (start == end)
+               return (KERN_SUCCESS);
        user_unwire = (flags & VM_MAP_WIRE_USER) ? TRUE : FALSE;
        vm_map_lock(map);
        VM_MAP_RANGE_CHECK(map, start, end);
@@ -2393,6 +2404,8 @@ vm_map_wire(vm_map_t map, vm_offset_t st
        boolean_t fictitious, need_wakeup, result, user_wire;
        vm_prot_t prot;
 
+       if (start == end)
+               return (KERN_SUCCESS);
        prot = 0;
        if (flags & VM_MAP_WIRE_WRITE)
                prot |= VM_PROT_WRITE;
@@ -2835,6 +2848,8 @@ vm_map_delete(vm_map_t map, vm_offset_t 
        vm_map_entry_t first_entry;
 
        VM_MAP_ASSERT_LOCKED(map);
+       if (start == end)
+               return (KERN_SUCCESS);
 
        /*
         * Find the start of the region, and clip it
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "[email protected]"

Reply via email to