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
