[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] x86/64 e820-parse-and-map code should skip low 1GB now as that
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 4ce84cc557276466a640c2fa9d4079390fd9bf6c # Parent 7dc3c0bf1395415979d3dcc4c88e59dc611e2362 x86/64 e820-parse-and-map code should skip low 1GB now as that is mapped by the boot code. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> diff -r 7dc3c0bf1395 -r 4ce84cc55727 xen/arch/x86/setup.c --- a/xen/arch/x86/setup.c Wed Apr 19 22:23:44 2006 +0100 +++ b/xen/arch/x86/setup.c Wed Apr 19 22:28:22 2006 +0100 @@ -321,7 +321,7 @@ void __init __start_xen(multiboot_info_t #if defined (CONFIG_X86_64) /* * x86/64 maps all registered RAM. Points to note: - * 1. The initial pagetable already maps low 64MB, so skip that. + * 1. The initial pagetable already maps low 1GB, so skip that. * 2. We must map *only* RAM areas, taking care to avoid I/O holes. * Failure to do this can cause coherency problems and deadlocks * due to cache-attribute mismatches (e.g., AMD/AGP Linux bug). @@ -329,13 +329,14 @@ void __init __start_xen(multiboot_info_t { /* Calculate page-frame range, discarding partial frames. */ unsigned long start, end; + unsigned long init_mapped = 1UL << (30 - PAGE_SHIFT); /* 1GB */ start = PFN_UP(e820.map[i].addr); end = PFN_DOWN(e820.map[i].addr + e820.map[i].size); /* Clip the range to above 64MB. */ - if ( end < (64UL << (20-PAGE_SHIFT)) ) + if ( end < init_mapped ) continue; - if ( start < (64UL << (20-PAGE_SHIFT)) ) - start = 64UL << (20-PAGE_SHIFT); + if ( start < init_mapped ) + start = init_mapped; /* Request the mapping. */ map_pages_to_xen( PAGE_OFFSET + (start << PAGE_SHIFT), _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |