[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Crash on boot with 2.6.37-rc8-git3
On Tue, 25 Jan 2011, Stefano Stabellini wrote: I think you need the slightly improved version I posted before that can handle map[i].addr not page aligned (I silently added a s-o-b Young, I hope he's OK with this). Yes and yes. My version doesn't work if map[i].addr is not page aligned. The aim is to make sure the end address is page aligned, and avoid ending with a partial page which won't have a PFN and might also require different treatment if there is reserved content in the rest of the page (which is true in my case). Michael Young commit b84683ad1e704c2a296d08ff0cbe29db936f94a7 Author: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Date: Tue Jan 25 12:03:42 2011 +0000 xen: make sure the e820 memory regions end at page boundary Signed-off-by: M A Young <m.a.young@xxxxxxxxxxxx> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index b5a7f92..a3d28a1 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -179,7 +179,10 @@ char * __init xen_memory_setup(void) e820.nr_map = 0; xen_extra_mem_start = mem_end; for (i = 0; i < memmap.nr_entries; i++) { - unsigned long long end = map[i].addr + map[i].size; + unsigned long long end; + if (map[i].type == E820_RAM) + map[i].size -= (map[i].size + map[i].addr) % PAGE_SIZE; + end = map[i].addr + map[i].size; if (map[i].type == E820_RAM && end > mem_end) { /* RAM off the end - may be partially included */ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |