[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xc ptrace: Fix a couple of bugs in page-table walking.
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1196940558 0 # Node ID d7a0a73e5dca64466843a420a3975ecf665d4762 # Parent 46776e65e6796f7751a15649f275b78e848d7ed5 xc ptrace: Fix a couple of bugs in page-table walking. Signed-off-by: John Zulauf <john.zulauf@xxxxxxxxx> --- tools/libxc/xc_ptrace.c | 19 +++---------------- 1 files changed, 3 insertions(+), 16 deletions(-) diff -r 46776e65e679 -r d7a0a73e5dca tools/libxc/xc_ptrace.c --- a/tools/libxc/xc_ptrace.c Thu Dec 06 11:24:02 2007 +0000 +++ b/tools/libxc/xc_ptrace.c Thu Dec 06 11:29:18 2007 +0000 @@ -156,21 +156,8 @@ static long nr_pages = 0; 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) -{ - if ( current_is_hvm && paging_enabled(&ctxt[cpu]) ) - maddr = page_array[maddr >> PAGE_SHIFT] << PAGE_SHIFT; +static uint64_t to_ma(int cpu, uint64_t maddr) +{ 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 ) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |