Kazuo Moriwaka
2006-Aug-30 12:13 UTC
[Xen-devel] [patch] phys_to_machine_mapping alignment on x86_64
Hi, At x86_64 linux domain, phys_to_machine_mapping, pfn_to_mfn_frame_list_list, and pfn_to_mfn_frame_list should be aligned to pagesize, but it can be misaligned now. If they aren''t aligned to pagesize, it will cause fails while saving the domain. This patch fixed it. regards, Signed-off-by: Kazuo Moriwaka <moriwaka@valinux.co.jp> set phys_to_machine_mapping alignment to pagesize. diff -r a47951e59cbf -r 3bb0d973dfde linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c --- a/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c Wed Aug 30 09:47:24 2006 +0100 +++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c Wed Aug 30 20:31:42 2006 +0900 @@ -846,7 +846,7 @@ void __init setup_arch(char **cmdline_p) if (!xen_feature(XENFEAT_auto_translated_physmap)) { /* Make sure we have a large enough P->M table. */ - phys_to_machine_mapping = alloc_bootmem( + phys_to_machine_mapping = alloc_bootmem_pages( end_pfn * sizeof(unsigned long)); memset(phys_to_machine_mapping, ~0, end_pfn * sizeof(unsigned long)); @@ -863,7 +863,7 @@ void __init setup_arch(char **cmdline_p) * list of frames that make up the p2m table. Used by * save/restore. */ - pfn_to_mfn_frame_list_list = alloc_bootmem(PAGE_SIZE); + pfn_to_mfn_frame_list_list alloc_bootmem_pages(PAGE_SIZE); HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list_list virt_to_mfn(pfn_to_mfn_frame_list_list); @@ -873,7 +873,7 @@ void __init setup_arch(char **cmdline_p) k++; BUG_ON(k>=fpp); pfn_to_mfn_frame_list[k] - alloc_bootmem(PAGE_SIZE); + alloc_bootmem_pages(PAGE_SIZE); pfn_to_mfn_frame_list_list[k] virt_to_mfn(pfn_to_mfn_frame_list[k]); j=0; -- Kazuo Moriwaka _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel