Author: alc
Date: Sat Jan 23 20:28:37 2010
New Revision: 202897
URL: http://svn.freebsd.org/changeset/base/202897

Log:
  Simplify the mapping of the system message buffer.  Use the direct map just
  like ia64 does.

Modified:
  head/sys/amd64/amd64/machdep.c
  head/sys/amd64/amd64/pmap.c

Modified: head/sys/amd64/amd64/machdep.c
==============================================================================
--- head/sys/amd64/amd64/machdep.c      Sat Jan 23 19:29:42 2010        
(r202896)
+++ head/sys/amd64/amd64/machdep.c      Sat Jan 23 20:28:37 2010        
(r202897)
@@ -157,6 +157,8 @@ SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST,
 extern vm_offset_t ksym_start, ksym_end;
 #endif
 
+struct msgbuf *msgbufp;
+
 /* Intel ICH registers */
 #define ICH_PMBASE     0x400
 #define ICH_SMI_EN     ICH_PMBASE + 0x30
@@ -1275,7 +1277,7 @@ add_smap_entry(struct bios_smap *smap, v
 static void
 getmemsize(caddr_t kmdp, u_int64_t first)
 {
-       int i, off, physmap_idx, pa_indx, da_indx;
+       int i, physmap_idx, pa_indx, da_indx;
        vm_paddr_t pa, physmap[PHYSMAP_SIZE];
        u_long physmem_tunable;
        pt_entry_t *pte;
@@ -1508,9 +1510,7 @@ do_next:
        phys_avail[pa_indx] -= round_page(MSGBUF_SIZE);
 
        /* Map the message buffer. */
-       for (off = 0; off < round_page(MSGBUF_SIZE); off += PAGE_SIZE)
-               pmap_kenter((vm_offset_t)msgbufp + off, phys_avail[pa_indx] +
-                   off);
+       msgbufp = (struct msgbuf *)PHYS_TO_DMAP(phys_avail[pa_indx]);
 }
 
 u_int64_t

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c Sat Jan 23 19:29:42 2010        (r202896)
+++ head/sys/amd64/amd64/pmap.c Sat Jan 23 20:28:37 2010        (r202897)
@@ -105,7 +105,6 @@ __FBSDID("$FreeBSD$");
  *     and to when physical maps must be made correct.
  */
 
-#include "opt_msgbuf.h"
 #include "opt_pmap.h"
 #include "opt_vm.h"
 
@@ -116,7 +115,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/lock.h>
 #include <sys/malloc.h>
 #include <sys/mman.h>
-#include <sys/msgbuf.h>
 #include <sys/mutex.h>
 #include <sys/proc.h>
 #include <sys/sx.h>
@@ -206,7 +204,6 @@ static int shpgperproc = PMAP_SHPGPERPRO
  */
 pt_entry_t *CMAP1 = 0;
 caddr_t CADDR1 = 0;
-struct msgbuf *msgbufp = 0;
 
 /*
  * Crashdump maps.
@@ -570,11 +567,6 @@ pmap_bootstrap(vm_paddr_t *firstaddr)
         */
        SYSMAP(caddr_t, unused, crashdumpmap, MAXDUMPPGS)
 
-       /*
-        * msgbufp is used to map the system message buffer.
-        */
-       SYSMAP(struct msgbuf *, unused, msgbufp, atop(round_page(MSGBUF_SIZE)))
-
        virtual_avail = va;
 
        *CMAP1 = 0;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to