]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
xc ptrace: Fix a couple of bugs in page-table walking.
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 6 Dec 2007 17:36:07 +0000 (17:36 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 6 Dec 2007 17:36:07 +0000 (17:36 +0000)
Signed-off-by: John Zulauf <john.zulauf@intel.com>
xen-unstable changeset:   16544:d7a0a73e5dca64466843a420a3975ecf665d4762
xen-unstable date:        Thu Dec 06 11:29:18 2007 +0000

tools/libxc/xc_ptrace.c

index 288671b5bb5950ce6cdab97a09f912f0e169f394..fb7c2ecb9edfbc4f79268c51bcfc5b66d232602b 100644 (file)
@@ -156,21 +156,8 @@ online_vcpus_changed(uint64_t cpumap)
 static long      nr_pages = 0;
 static uint64_t *page_array = NULL;
 
-
-/*
- * Translates physical addresses to machine addresses for HVM
- * guests. For paravirtual domains the function will just return the
- * given address.
- *
- * This function should be used when reading page directories/page
- * tables.
- *
- */
-static uint64_t
-to_ma(int cpu, uint64_t maddr)
+static uint64_t to_ma(int cpu, uint64_t maddr)
 {
-    if ( current_is_hvm && paging_enabled(&ctxt[cpu]) )
-        maddr = page_array[maddr >> PAGE_SHIFT] << PAGE_SHIFT;
     return maddr;
 }
 
@@ -310,7 +297,7 @@ map_domain_va_64(
         return NULL;
     l1p = to_ma(cpu, l2e);
     if (l2e & 0x80)  { /* 2M pages */
-        p = to_ma(cpu, (l1p + l1_table_offset(va)) << PAGE_SHIFT);
+        p = to_ma(cpu, l1p + (l1_table_offset(va) << PAGE_SHIFT));
     } else { /* 4K pages */
         l1 = xc_map_foreign_range(xc_handle, current_domid, PAGE_SIZE, PROT_READ, l1p >> PAGE_SHIFT);
         if ( l1 == NULL )