[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-ia64-devel] [PATCH] VP model doesn't pass the whole ACPI table to dom0



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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.