Hi Alex,
Good work! Your patch works well on the PRIMEQUEST.
Now ASSIGN_DOMAIN_MACH_PAGE in dom_fw.c is redundant and
the attached patch should be applied.
It removes the xen console message:
"__assign_domain_page: mpaddr XXXX already mapped!".
Thanks a lot,
Kouya
Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
Alex Williamson writes:
> Hi Kouya,
>
> Here's a different approach that might be more clean. Newer upstream
> kernels have changed EFI MDT parsing so that it doesn't change the
> original EFI table. Here's a reference to the upstream changeset:
>
> http://www.kernel.org/hg/linux-2.6/?cs=fb781f6d3e81
>
> The attached patch is a port of this to xen. Does this improve things
> on the PRIMEQUEST? The nice part about this is that it doesn't add any
> new Xen specific code to the linux-xen files. Thanks,
>
> Alex
diff -r 4e78528e3480 xen/arch/ia64/xen/dom_fw.c
--- a/xen/arch/ia64/xen/dom_fw.c Tue Jun 06 09:11:25 2006 -0600
+++ b/xen/arch/ia64/xen/dom_fw.c Thu Jun 08 14:31:16 2006 +0900
@@ -594,18 +594,11 @@ dom_fw_init (struct domain *d, const cha
efi_tables[i].table = 0;
}
if (d == dom0) {
-#ifdef CONFIG_XEN_IA64_DOM0_VP
-# define ASSIGN_DOMAIN_MACH_PAGE(d, p) \
- assign_domain_mach_page((d), (p), PAGE_SIZE, ASSIGN_readonly)
-#else
-# define ASSIGN_DOMAIN_MACH_PAGE(d, p) (p)
-#endif
-
printf("Domain0 EFI passthrough:");
i = 1;
if (efi.mps) {
efi_tables[i].guid = MPS_TABLE_GUID;
- efi_tables[i].table = ASSIGN_DOMAIN_MACH_PAGE(d,
__pa(efi.mps));
+ efi_tables[i].table = __pa(efi.mps);
printf(" MPS=0x%lx",efi_tables[i].table);
i++;
}
@@ -614,25 +607,25 @@ dom_fw_init (struct domain *d, const cha
if (efi.acpi20) {
efi_tables[i].guid = ACPI_20_TABLE_GUID;
- efi_tables[i].table = ASSIGN_DOMAIN_MACH_PAGE(d,
__pa(efi.acpi20));
+ efi_tables[i].table = __pa(efi.acpi20);
printf(" ACPI 2.0=0x%lx",efi_tables[i].table);
i++;
}
if (efi.acpi) {
efi_tables[i].guid = ACPI_TABLE_GUID;
- efi_tables[i].table = ASSIGN_DOMAIN_MACH_PAGE(d,
__pa(efi.acpi));
+ efi_tables[i].table = __pa(efi.acpi);
printf(" ACPI=0x%lx",efi_tables[i].table);
i++;
}
if (efi.smbios) {
efi_tables[i].guid = SMBIOS_TABLE_GUID;
- efi_tables[i].table = ASSIGN_DOMAIN_MACH_PAGE(d,
__pa(efi.smbios));
+ efi_tables[i].table = __pa(efi.smbios);
printf(" SMBIOS=0x%lx",efi_tables[i].table);
i++;
}
if (efi.hcdp) {
efi_tables[i].guid = HCDP_TABLE_GUID;
- efi_tables[i].table = ASSIGN_DOMAIN_MACH_PAGE(d,
__pa(efi.hcdp));
+ efi_tables[i].table = __pa(efi.hcdp);
printf(" HCDP=0x%lx",efi_tables[i].table);
i++;
}
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|