svn commit: r238147 - projects/amd64_xen_pv/sys/amd64/xen

Cherry G. Mathew cherry at FreeBSD.org
Thu Jul 5 20:21:14 UTC 2012


Author: cherry
Date: Thu Jul  5 20:21:13 2012
New Revision: 238147
URL: http://svn.freebsd.org/changeset/base/238147

Log:
   - bzero msgbufp after allocation and before use.
   - fix pmap_kextract_ma() to use the correct pt index offset.
  
  Approved by:	gibbs (implicit)

Modified:
  projects/amd64_xen_pv/sys/amd64/xen/pmap.c

Modified: projects/amd64_xen_pv/sys/amd64/xen/pmap.c
==============================================================================
--- projects/amd64_xen_pv/sys/amd64/xen/pmap.c	Thu Jul  5 20:16:24 2012	(r238146)
+++ projects/amd64_xen_pv/sys/amd64/xen/pmap.c	Thu Jul  5 20:21:13 2012	(r238147)
@@ -548,6 +548,8 @@ pmap_bootstrap(vm_paddr_t *firstaddr)
 	msgbufp = (void *) pmap_map(&virtual_avail,
 				    ptoa(physmem), ptoa(physmem) + round_page(msgbufsize),
 				    VM_PROT_READ | VM_PROT_WRITE);
+
+	bzero(msgbufp, round_page(msgbufsize));
 }
 
 void
@@ -834,6 +836,9 @@ pmap_kextract_ma(vm_offset_t va)
 			 * effectively const.
 			 */
 
+	const uint64_t SIGNMASK = (1UL << 48) - 1;
+	va &= SIGNMASK; /* Remove sign extension */
+
 	mmu_map_t tptr = tbuf;
 
 	struct mmu_map_mbackend mb = {
@@ -849,7 +854,7 @@ pmap_kextract_ma(vm_offset_t va)
 		goto nomapping;
 	}
 
-	ma = mmu_map_pt(tptr)[(~PDRMASK & PAGE_MASK & va) >> PAGE_SHIFT];
+	ma = mmu_map_pt(tptr)[(PDRMASK & va) >> PAGE_SHIFT];
 
 	mmu_map_t_fini(tptr);
 


More information about the svn-src-projects mailing list