Author: alc
Date: Sat Mar 18 06:05:54 2017
New Revision: 315476
URL: https://svnweb.freebsd.org/changeset/base/315476

Log:
  MFC r314717,315085
    Style and punctuation fixes.
  
    Simplify the control flow and tidy up a comment in map_insert.

Modified:
  stable/11/sys/kern/imgact_elf.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/imgact_elf.c
==============================================================================
--- stable/11/sys/kern/imgact_elf.c     Sat Mar 18 05:53:09 2017        
(r315475)
+++ stable/11/sys/kern/imgact_elf.c     Sat Mar 18 06:05:54 2017        
(r315476)
@@ -416,7 +416,7 @@ __elfN(map_partial)(vm_map_t map, vm_obj
        /*
         * Find the page from the underlying object.
         */
-       if (object) {
+       if (object != NULL) {
                sf = vm_imgact_map_page(object, offset);
                if (sf == NULL)
                        return (KERN_FAILURE);
@@ -444,7 +444,7 @@ __elfN(map_insert)(struct image_params *
        if (start != trunc_page(start)) {
                rv = __elfN(map_partial)(map, object, offset, start,
                    round_page(start), prot);
-               if (rv)
+               if (rv != KERN_SUCCESS)
                        return (rv);
                offset += round_page(start) - start;
                start = round_page(start);
@@ -452,54 +452,51 @@ __elfN(map_insert)(struct image_params *
        if (end != round_page(end)) {
                rv = __elfN(map_partial)(map, object, offset +
                    trunc_page(end) - start, trunc_page(end), end, prot);
-               if (rv)
+               if (rv != KERN_SUCCESS)
                        return (rv);
                end = trunc_page(end);
        }
-       if (end > start) {
-               if (offset & PAGE_MASK) {
-                       /*
-                        * The mapping is not page aligned. This means we have
-                        * to copy the data. Sigh.
-                        */
-                       rv = vm_map_fixed(map, NULL, 0, start, end - start,
-                           prot | VM_PROT_WRITE, VM_PROT_ALL, MAP_CHECK_EXCL);
-                       if (rv != KERN_SUCCESS)
-                               return (rv);
-                       if (object == NULL)
-                               return (KERN_SUCCESS);
-                       for (; start < end; start += sz) {
-                               sf = vm_imgact_map_page(object, offset);
-                               if (sf == NULL)
-                                       return (KERN_FAILURE);
-                               off = offset - trunc_page(offset);
-                               sz = end - start;
-                               if (sz > PAGE_SIZE - off)
-                                       sz = PAGE_SIZE - off;
-                               error = copyout((caddr_t)sf_buf_kva(sf) + off,
-                                   (caddr_t)start, sz);
-                               vm_imgact_unmap_page(sf);
-                               if (error != 0)
-                                       return (KERN_FAILURE);
-                               offset += sz;
-                       }
-                       rv = KERN_SUCCESS;
-               } else {
-                       vm_object_reference(object);
-                       rv = vm_map_fixed(map, object, offset, start,
-                           end - start, prot, VM_PROT_ALL,
-                           cow | MAP_CHECK_EXCL);
-                       if (rv != KERN_SUCCESS) {
-                               locked = VOP_ISLOCKED(imgp->vp);
-                               VOP_UNLOCK(imgp->vp, 0);
-                               vm_object_deallocate(object);
-                               vn_lock(imgp->vp, locked | LK_RETRY);
-                       }
+       if (start >= end)
+               return (KERN_SUCCESS);
+       if ((offset & PAGE_MASK) != 0) {
+               /*
+                * The mapping is not page aligned.  This means that we have
+                * to copy the data.
+                */
+               rv = vm_map_fixed(map, NULL, 0, start, end - start,
+                   prot | VM_PROT_WRITE, VM_PROT_ALL, MAP_CHECK_EXCL);
+               if (rv != KERN_SUCCESS)
+                       return (rv);
+               if (object == NULL)
+                       return (KERN_SUCCESS);
+               for (; start < end; start += sz) {
+                       sf = vm_imgact_map_page(object, offset);
+                       if (sf == NULL)
+                               return (KERN_FAILURE);
+                       off = offset - trunc_page(offset);
+                       sz = end - start;
+                       if (sz > PAGE_SIZE - off)
+                               sz = PAGE_SIZE - off;
+                       error = copyout((caddr_t)sf_buf_kva(sf) + off,
+                           (caddr_t)start, sz);
+                       vm_imgact_unmap_page(sf);
+                       if (error != 0)
+                               return (KERN_FAILURE);
+                       offset += sz;
                }
-               return (rv);
        } else {
-               return (KERN_SUCCESS);
+               vm_object_reference(object);
+               rv = vm_map_fixed(map, object, offset, start, end - start,
+                   prot, VM_PROT_ALL, cow | MAP_CHECK_EXCL);
+               if (rv != KERN_SUCCESS) {
+                       locked = VOP_ISLOCKED(imgp->vp);
+                       VOP_UNLOCK(imgp->vp, 0);
+                       vm_object_deallocate(object);
+                       vn_lock(imgp->vp, locked | LK_RETRY);
+                       return (rv);
+               }
        }
+       return (KERN_SUCCESS);
 }
 
 static int
@@ -539,7 +536,7 @@ __elfN(load_section)(struct image_params
         * We have two choices.  We can either clear the data in the last page
         * of an oversized mapping, or we can start the anon mapping a page
         * early and copy the initialized data into that first page.  We
-        * choose the second..
+        * choose the second.
         */
        if (memsz > filsz)
                map_len = trunc_page_ps(offset + filsz, pagesize) - file_addr;
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to