Author: kib
Date: Thu May 16 13:13:33 2019
New Revision: 347693
URL: https://svnweb.freebsd.org/changeset/base/347693

Log:
  rtld_malloc.c: cleanup morepages().
  
  Use roundup2() and rounddown2() instead of inlining them.
  Get rid of the fd local variable, use literal -1 for the mmap argument.
  Use MAP_FAILED as mmap(2) failure indicator.
  After that, apply some style.
  
  Sponsored by: The FreeBSD Foundation
  MFC after:    1 week

Modified:
  head/libexec/rtld-elf/rtld_malloc.c

Modified: head/libexec/rtld-elf/rtld_malloc.c
==============================================================================
--- head/libexec/rtld-elf/rtld_malloc.c Thu May 16 13:07:26 2019        
(r347692)
+++ head/libexec/rtld-elf/rtld_malloc.c Thu May 16 13:13:33 2019        
(r347693)
@@ -345,12 +345,11 @@ findbucket(union overhead *freep, int srchlen)
 static int
 morepages(int n)
 {
-       int     fd = -1;
-       int     offset;
+       caddr_t addr;
+       int offset;
 
        if (pagepool_end - pagepool_start > pagesz) {
-               caddr_t addr = (caddr_t)
-                       (((long)pagepool_start + pagesz - 1) & ~(pagesz - 1));
+               addr = (caddr_t)roundup2((long)pagepool_start, pagesz);
                if (munmap(addr, pagepool_end - addr) != 0) {
 #ifdef IN_RTLD
                        rtld_fdprintf(STDERR_FILENO, _BASENAME_RTLD ": "
@@ -360,20 +359,21 @@ morepages(int n)
                }
        }
 
-       offset = (long)pagepool_start - ((long)pagepool_start & ~(pagesz - 1));
+       offset = (long)pagepool_start - rounddown2((long)pagepool_start,
+           pagesz);
 
-       if ((pagepool_start = mmap(0, n * pagesz,
-                       PROT_READ|PROT_WRITE,
-                       MAP_ANON|MAP_PRIVATE, fd, 0)) == (caddr_t)-1) {
+       pagepool_start = mmap(0, n * pagesz, PROT_READ | PROT_WRITE,
+           MAP_ANON | MAP_PRIVATE, -1, 0);
+       if (pagepool_start == MAP_FAILED) {
 #ifdef IN_RTLD
                rtld_fdprintf(STDERR_FILENO, _BASENAME_RTLD ": morepages: "
                    "cannot mmap anonymous memory: %s\n",
                    rtld_strerror(errno));
 #endif
-               return 0;
+               return (0);
        }
        pagepool_end = pagepool_start + n * pagesz;
        pagepool_start += offset;
 
-       return n;
+       return (n);
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to