summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2010-01-23 20:28:37 +0000
committeralc <alc@FreeBSD.org>2010-01-23 20:28:37 +0000
commitd6d56bade7de371ecbb6e900ae78b63d480d4327 (patch)
tree06d0ac39958a3775130d2e95717fe42524a31fce /sys/amd64
parentc758f111fad5c95a1f3fe5517e146d6bc67f5db9 (diff)
downloadFreeBSD-src-d6d56bade7de371ecbb6e900ae78b63d480d4327.zip
FreeBSD-src-d6d56bade7de371ecbb6e900ae78b63d480d4327.tar.gz
Simplify the mapping of the system message buffer. Use the direct map just
like ia64 does.
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/machdep.c8
-rw-r--r--sys/amd64/amd64/pmap.c8
2 files changed, 4 insertions, 12 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index c4130a4..93c0183 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -157,6 +157,8 @@ SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL);
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, vm_paddr_t *physmap, int *physmap_idxp)
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
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 15e9e25..9bc1f8c 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -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_SHPGPERPROC;
*/
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;
OpenPOWER on IntegriCloud