$NetBSD: patch-ba,v 1.3 2007/12/05 22:06:27 bouyer Exp $

--- xen/arch/x86/domain_build.c.orig	2007-11-15 00:35:27.000000000 +0100
+++ xen/arch/x86/domain_build.c	2007-12-05 22:55:53.000000000 +0100
@@ -316,6 +316,9 @@
            parms.pae       ? ", PAE"  : "",
            elf_msb(&elf)   ? "msb"    : "lsb",
            elf.pstart, elf.pend);
+    if ( elf.bsd_symtab_pstart )
+        printk(" Dom0 symbol map 0x%" PRIx64 " -> 0x%" PRIx64 "\n",
+               elf.bsd_symtab_pstart, elf.bsd_symtab_pend);
 
     if ( !compatible )
     {
@@ -349,6 +352,8 @@
     if ( parms.pae == PAEKERN_extended_cr3 )
             set_bit(VMASST_TYPE_pae_extended_cr3, &d->vm_assist);
 
+    d->arch.physaddr_bitsize = 64;
+
     if ( UNSET_ADDR != parms.virt_hv_start_low && elf_32bit(&elf) )
     {
 #if CONFIG_PAGING_LEVELS < 4
@@ -642,6 +647,7 @@
         l4start = l4tab = page_to_virt(page);
     }
     copy_page(l4tab, idle_pg_table);
+    l4tab[0] = l4e_empty(); /* zap trampoline mapping */
     l4tab[l4_table_offset(LINEAR_PT_VIRT_START)] =
         l4e_from_paddr(__pa(l4start), __PAGE_HYPERVISOR);
     l4tab[l4_table_offset(PERDOMAIN_VIRT_START)] =
