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

Re: [Xen-devel] ANNOUNCE: Xen 3.1.1 First Release Candidate



Hi Alex,

Sorry for inconvenience.
I made a wrong backport (xen-3.1-testing.hg 15204). 
Attached patch fixes it.

Keir, 15655 needs additional backports.
please include attached patches too.
These are modified for 3.1.1.

I confirmed it can be built and boot on IA64.

Thanks,
Kouya

Alex Williamson writes:
 > On Thu, 2007-09-20 at 10:37 +0100, Keir Fraser wrote:
 > > Folks,
 > > 
 > > The patch queue for 3.1.1 has been pushed into
 > > http://xenbits.xensource.com/xen-3.1-testing.hg, and tagged as -rc1. Please
 > > try it out and let us know of any problems (patches gladly accepted!).
 > > 
 > >  -- Keir
 > > 
 > > PS. The patch queue (xen-3.1-testing.pq.hg) is no longer being used.
 > 
 >    Kouya, there seems to be some build breakages around the changesets
 > you submitted.  15311 includes a chunk from the windows optimization
 > patch and doesn't build ('ret' undefined - adding a declaration for it
 > doesn't seem like the proper solution since the function returns void in
 > 3.1.1).  15655 adds calls to acpi_table_disable(), but
 > acpi_table_disable() doesn't exist.  Reverting those and adding the
 > patch below I can make it build and boot.  Do you already have patches
 > to fill these holes?
 > 
 >    Keir, the patch below is a trivial build warning fix, please include
 > it in the tree.  Thanks,
 > 
 >      Alex
 > 
 > -- 
 > Alex Williamson                             HP Open Source & Linux Org.
 > # HG changeset patch
 > # User Alex Williamson <alex.williamson@xxxxxx>
 > # Date 1179337039 21600
 > # Node ID 2d26b66901d20f3a945b7fa5687d8926b0e7a417
 > # Parent  7caa6c1cabc8362e137da3415c78918a22f8eb6c
 > [IA64] Fix trivial compiler warning
 > 
 > Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
 > xen-unstable changeset: 15124:2d26b66901d20f3a945b7fa5687d8926b0e7a417
 > xen-unstable date: Wed May 16 11:37:19 2007 -0600
 > 
 > diff -r 7caa6c1cabc8 -r 2d26b66901d2 xen/arch/ia64/vmx/vmmu.c
 > --- a/xen/arch/ia64/vmx/vmmu.c       Wed May 16 10:59:01 2007 -0600
 > +++ b/xen/arch/ia64/vmx/vmmu.c       Wed May 16 11:37:19 2007 -0600
 > @@ -562,8 +562,9 @@ static void ptc_ga_remote_func (void *va
 >      u64 oldrid, moldrid, mpta, oldpsbits, vadr, flags;
 >      struct ptc_ga_args *args = (struct ptc_ga_args *)varg;
 >      VCPU *v = args->vcpu;
 > +    int cpu = v->processor;
 > +
 >      vadr = args->vadr;
 > -    int cpu = v->processor;
 >  
 >      /* Try again if VCPU has migrated. */
 >      if (cpu != current->processor)
 > _______________________________________________
 > Xen-devel mailing list
 > Xen-devel@xxxxxxxxxxxxxxxxxxx
 > http://lists.xensource.com/xen-devel

# HG changeset patch
# User Kouya Shimura <kouya@xxxxxxxxxxxxxx>
# Date 1190350719 -32400
# Node ID da7784dd34f5e85b62023d35c8c9d618b78647ac
# Parent  ae030e33166c9305e445029f31ba8079b9ed3f3d
[IA64] Fix backport (xen-3.1-testing changeset 15204)

Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
xen-unstable changeset: 15311:466f71b1e8319927dca16bd16b05faa09fad0cdd
xen-unstable date: Thu May 24 14:16:28 2007 -0600

diff -r ae030e33166c -r da7784dd34f5 xen/arch/ia64/vmx/vtlb.c
--- a/xen/arch/ia64/vmx/vtlb.c  Wed May 16 11:37:19 2007 -0600
+++ b/xen/arch/ia64/vmx/vtlb.c  Fri Sep 21 13:58:39 2007 +0900
@@ -536,9 +536,6 @@ void thash_purge_and_insert(VCPU *v, u64
     mrr.rrval = ia64_get_rr(ifa);
     if(VMX_DOMAIN(v)){
         phy_pte = translate_phy_pte(v, &pte, itir, ifa);
-
-        if (pte & VTLB_PTE_IO)
-            ret = 1;
         vtlb_purge(v, ifa, ps);
         vhpt_purge(v, ifa, ps);
         if (ps == mrr.ps) {
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1185789567 -3600
# Node ID d9c3836e068409ddb7620f7bd5b4c09f16a55f86
# Parent  f42ca20a1bb31942a5ea25d704be4025bfbe6d44
Move generate_acpi_checksum() from ia64 code to common.
Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx>
xen-unstable changeset: 15653:d9c3836e068409ddb7620f7bd5b4c09f16a55f86
xen-unstable date: Mon Jul 30 10:59:27 2007 +0100

diff -r 853ddd757ef2 -r 081537b26736 xen/arch/ia64/xen/dom_fw.c
--- a/xen/arch/ia64/xen/dom_fw.c        Fri Sep 21 11:04:25 2007 +0900
+++ b/xen/arch/ia64/xen/dom_fw.c        Fri Sep 21 11:15:03 2007 +0900
@@ -256,17 +256,6 @@ acpi_patch_plat_int_src (
                plintsrc->type = -1;
        }
        return 0;
-}
-
-static u8
-generate_acpi_checksum(void *tbl, unsigned long len)
-{
-       u8 *ptr, sum = 0;
-
-       for (ptr = tbl; len > 0 ; len--, ptr++)
-               sum += *ptr;
-
-       return 0 - sum;
 }
 
 static int
diff -r 853ddd757ef2 -r 081537b26736 xen/drivers/acpi/tables.c
--- a/xen/drivers/acpi/tables.c Fri Sep 21 11:04:25 2007 +0900
+++ b/xen/drivers/acpi/tables.c Fri Sep 21 11:15:03 2007 +0900
@@ -226,6 +226,17 @@ void acpi_table_print_madt_entry(acpi_ta
        }
 }
 
+uint8_t
+generate_acpi_checksum(void *tbl, unsigned long len)
+{
+       uint8_t *ptr, sum = 0;
+
+       for (ptr = tbl; len > 0 ; len--, ptr++)
+               sum += *ptr;
+
+       return 0 - sum;
+}
+
 static int
 acpi_table_compute_checksum(void *table_pointer, unsigned long length)
 {
diff -r 853ddd757ef2 -r 081537b26736 xen/include/xen/acpi.h
--- a/xen/include/xen/acpi.h    Fri Sep 21 11:04:25 2007 +0900
+++ b/xen/include/xen/acpi.h    Fri Sep 21 11:15:03 2007 +0900
@@ -390,6 +390,7 @@ void acpi_table_print (struct acpi_table
 void acpi_table_print (struct acpi_table_header *header, unsigned long 
phys_addr);
 void acpi_table_print_madt_entry (acpi_table_entry_header *madt);
 void acpi_table_print_srat_entry (acpi_table_entry_header *srat);
+uint8_t generate_acpi_checksum(void *tbl, unsigned long len);
 
 /* the following four functions are architecture-dependent */
 void acpi_numa_slit_init (struct acpi_table_slit *slit);
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1185791268 -3600
# Node ID c0fbee66aff63978addc5f8b263947553f606d08
# Parent  d9c3836e068409ddb7620f7bd5b4c09f16a55f86
Add acpi_table_disable() into xen/drivers/acpi/tables.c
This function can disable a ACPI table by updating the table header.

Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx>
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
xen-unstable changeset: 15654:c0fbee66aff63978addc5f8b263947553f606d08
xen-unstable date: Mon Jul 30 11:27:48 2007 +0100

diff -r 081537b26736 -r ad80d0bb0048 xen/drivers/acpi/tables.c
--- a/xen/drivers/acpi/tables.c Fri Sep 21 11:15:03 2007 +0900
+++ b/xen/drivers/acpi/tables.c Fri Sep 21 11:20:06 2007 +0900
@@ -631,3 +631,143 @@ int __init acpi_table_init(void)
 
        return 0;
 }
+
+int __init
+acpi_table_disable(enum acpi_table_id table_id)
+{
+       struct acpi_table_header *header = NULL;
+       struct acpi_table_rsdp *rsdp;
+       unsigned long rsdp_phys;
+       char *table_name;
+       int id;
+
+       rsdp_phys = acpi_find_rsdp();
+       if (!rsdp_phys)
+               return -ENODEV;
+
+       rsdp = (struct acpi_table_rsdp *)__acpi_map_table(rsdp_phys,
+               sizeof(struct acpi_table_rsdp));
+       if (!rsdp)
+               return -ENODEV;
+
+       for (id = 0; id < sdt_count; id++)
+               if (sdt_entry[id].id == table_id)
+                       break;
+
+       if (id == sdt_count)
+               return -ENOENT;
+
+       table_name = acpi_table_signatures[table_id];
+
+       /* First check XSDT (but only on ACPI 2.0-compatible systems) */
+
+       if ((rsdp->revision >= 2) &&
+           (((struct acpi20_table_rsdp *)rsdp)->xsdt_address)) {
+
+               struct acpi_table_xsdt *mapped_xsdt = NULL;
+
+               sdt_pa = ((struct acpi20_table_rsdp *)rsdp)->xsdt_address;
+
+               /* map in just the header */
+               header = (struct acpi_table_header *)
+                   __acpi_map_table(sdt_pa, sizeof(struct acpi_table_header));
+
+               if (!header) {
+                       printk(KERN_WARNING PREFIX
+                              "Unable to map XSDT header\n");
+                       return -ENODEV;
+               }
+
+               /* remap in the entire table before processing */
+               mapped_xsdt = (struct acpi_table_xsdt *)
+                   __acpi_map_table(sdt_pa, header->length);
+               if (!mapped_xsdt) {
+                       printk(KERN_WARNING PREFIX "Unable to map XSDT\n");
+                       return -ENODEV;
+               }
+               header = &mapped_xsdt->header;
+
+               if (strncmp(header->signature, "XSDT", 4)) {
+                       printk(KERN_WARNING PREFIX
+                              "XSDT signature incorrect\n");
+                       return -ENODEV;
+               }
+
+               if (acpi_table_compute_checksum(header, header->length)) {
+                       printk(KERN_WARNING PREFIX "Invalid XSDT checksum\n");
+                       return -ENODEV;
+               }
+
+               if (id < sdt_count) {
+                       header = (struct acpi_table_header *)
+                          __acpi_map_table(mapped_xsdt->entry[id], 
sizeof(struct acpi_table_header));
+               } else {
+                       printk(KERN_WARNING PREFIX
+                              "Unable to disable entry %d\n",
+                              id);
+                       return -ENODEV;
+               }
+       }
+
+       /* Then check RSDT */
+
+       else if (rsdp->rsdt_address) {
+
+               struct acpi_table_rsdt *mapped_rsdt = NULL;
+
+               sdt_pa = rsdp->rsdt_address;
+
+               /* map in just the header */
+               header = (struct acpi_table_header *)
+                   __acpi_map_table(sdt_pa, sizeof(struct acpi_table_header));
+               if (!header) {
+                       printk(KERN_WARNING PREFIX
+                              "Unable to map RSDT header\n");
+                       return -ENODEV;
+               }
+
+               /* remap in the entire table before processing */
+               mapped_rsdt = (struct acpi_table_rsdt *)
+                   __acpi_map_table(sdt_pa, header->length);
+               if (!mapped_rsdt) {
+                       printk(KERN_WARNING PREFIX "Unable to map RSDT\n");
+                       return -ENODEV;
+               }
+               header = &mapped_rsdt->header;
+
+               if (strncmp(header->signature, "RSDT", 4)) {
+                       printk(KERN_WARNING PREFIX
+                              "RSDT signature incorrect\n");
+                       return -ENODEV;
+               }
+
+               if (acpi_table_compute_checksum(header, header->length)) {
+                       printk(KERN_WARNING PREFIX "Invalid RSDT checksum\n");
+                       return -ENODEV;
+               }
+               if (id < sdt_count) {
+                       header = (struct acpi_table_header *)
+                          __acpi_map_table(mapped_rsdt->entry[id], 
sizeof(struct acpi_table_header));
+               } else {
+                       printk(KERN_WARNING PREFIX
+                              "Unable to disable entry %d\n",
+                              id);
+                       return -ENODEV;
+               }
+       }
+
+       else {
+               printk(KERN_WARNING PREFIX
+                      "No System Description Table (RSDT/XSDT) specified in 
RSDP\n");
+               return -ENODEV;
+       }
+
+       memcpy(header->signature, "OEMx", 4);
+       memcpy(header->oem_id, "xxxxxx", 6);
+       memcpy(header->oem_id+1, table_name, 4);
+       memcpy(header->oem_table_id, "Xen     ", 8);
+       header->checksum = 0;
+       header->checksum = generate_acpi_checksum(header, header->length);
+
+       return 0;
+}
diff -r 081537b26736 -r ad80d0bb0048 xen/include/xen/acpi.h
--- a/xen/include/xen/acpi.h    Fri Sep 21 11:15:03 2007 +0900
+++ b/xen/include/xen/acpi.h    Fri Sep 21 11:20:06 2007 +0900
@@ -383,6 +383,7 @@ int acpi_numa_init (void);
 int acpi_numa_init (void);
 
 int acpi_table_init (void);
+int acpi_table_disable(enum acpi_table_id table_id);
 int acpi_table_parse (enum acpi_table_id id, acpi_table_handler handler);
 int acpi_get_table_header_early (enum acpi_table_id id, struct 
acpi_table_header **header);
 int acpi_table_parse_madt (enum acpi_madt_entry_id id, acpi_madt_entry_handler 
handler, unsigned int max_entries);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

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