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

[Xen-changelog] Merged.



# HG changeset patch
# User emellor@xxxxxxxxxxxxxxxxxxxxxx
# Node ID 50dcb6266990fa932e9952037940fddf7424017b
# Parent  725bf42d4713eaee5c12cd39752e86ca56dee4ce
# Parent  fb50fba1895c3954f7d7bcecbc37221c58f235ff
Merged.

diff -r 725bf42d4713 -r 50dcb6266990 docs/man/xm.pod.1
--- a/docs/man/xm.pod.1 Wed Nov 16 11:36:47 2005
+++ b/docs/man/xm.pod.1 Wed Nov 16 11:37:29 2005
@@ -645,10 +645,6 @@
 
 =item B<network-detach> I<domain-id> I<devid>
 
-=item B<network-limit> I<domain-id> I<vif> I<credit> I<period>
-
-Limit the transmission rate of a virtual network interface.
-
 =item B<network-list> I<domain-id>
 
 List virtual network interfaces for a domain.  The returned output is
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c
--- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c       Wed Nov 16 
11:36:47 2005
+++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/pci-dma.c       Wed Nov 16 
11:37:29 2005
@@ -15,6 +15,7 @@
 #include <asm/io.h>
 #include <asm-xen/balloon.h>
 #include <asm/tlbflush.h>
+#include <asm/swiotlb.h>
 
 struct dma_coherent_mem {
        void            *virt_base;
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/arch/xen/kernel/devmem.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/devmem.c     Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/devmem.c     Wed Nov 16 11:37:29 2005
@@ -79,7 +79,7 @@
 
        if ((v = ioremap(p, count)) == NULL)
                return -EFAULT;
-       if (copy_to_user(v, buf, count))
+       if (copy_from_user(v, buf, count))
                goto out;
 
        written = count;
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c     Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/evtchn.c     Wed Nov 16 11:37:29 2005
@@ -752,7 +752,7 @@
                irq_bindcount[dynirq_to_irq(i)] = 0;
 
                irq_desc[dynirq_to_irq(i)].status  = IRQ_DISABLED;
-               irq_desc[dynirq_to_irq(i)].action  = 0;
+               irq_desc[dynirq_to_irq(i)].action  = NULL;
                irq_desc[dynirq_to_irq(i)].depth   = 1;
                irq_desc[dynirq_to_irq(i)].handler = &dynirq_type;
        }
@@ -770,7 +770,7 @@
 #endif
 
                irq_desc[pirq_to_irq(i)].status  = IRQ_DISABLED;
-               irq_desc[pirq_to_irq(i)].action  = 0;
+               irq_desc[pirq_to_irq(i)].action  = NULL;
                irq_desc[pirq_to_irq(i)].depth   = 1;
                irq_desc[pirq_to_irq(i)].handler = &pirq_type;
        }
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/arch/xen/kernel/reboot.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c     Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c     Wed Nov 16 11:37:29 2005
@@ -15,6 +15,7 @@
 #include <asm-xen/xenbus.h>
 #include <linux/cpu.h>
 #include <linux/kthread.h>
+#include <asm-xen/xencons.h>
 
 #define SHUTDOWN_INVALID  -1
 #define SHUTDOWN_POWEROFF  0
@@ -29,7 +30,6 @@
 void machine_restart(char * __unused)
 {
        /* We really want to get pending console data out before we die. */
-       extern void xencons_force_flush(void);
        xencons_force_flush();
        HYPERVISOR_sched_op(SCHEDOP_shutdown, SHUTDOWN_reboot);
 }
@@ -42,7 +42,6 @@
 void machine_power_off(void)
 {
        /* We really want to get pending console data out before we die. */
-       extern void xencons_force_flush(void);
        xencons_force_flush();
        HYPERVISOR_sched_op(SCHEDOP_shutdown, SHUTDOWN_poweroff);
 }
@@ -84,8 +83,6 @@
        cpumask_t prev_online_cpus;
        int vcpu_prepare(int vcpu);
 #endif
-
-       extern void xencons_resume(void);
 
        int err = 0;
 
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/arch/xen/kernel/xen_proc.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/xen_proc.c   Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/xen_proc.c   Wed Nov 16 11:37:29 2005
@@ -1,6 +1,7 @@
 
 #include <linux/config.h>
 #include <linux/proc_fs.h>
+#include <asm-xen/xen_proc.h>
 
 static struct proc_dir_entry *xen_base;
 
diff -r 725bf42d4713 -r 50dcb6266990 linux-2.6-xen-sparse/drivers/acpi/tables.c
--- a/linux-2.6-xen-sparse/drivers/acpi/tables.c        Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/acpi/tables.c        Wed Nov 16 11:37:29 2005
@@ -565,7 +565,7 @@
  * 
  * result: sdt_entry[] is initialized
  */
-#ifdef CONFIG_XEN_X86
+#if defined(CONFIG_XEN_X86) || defined(CONFIG_XEN_X86_64)
 #define acpi_rsdp_phys_to_va(rsdp_phys) (__fix_to_virt(FIX_ACPI_RSDP_PAGE) + \
                                           (rsdp_phys & ~PAGE_MASK))
 #else
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c
--- a/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c   Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c   Wed Nov 16 11:37:29 2005
@@ -438,7 +438,7 @@
        &dev_attr_pcrs.attr,
        &dev_attr_caps.attr,
        &dev_attr_cancel.attr,
-       0,
+       NULL,
 };
 
 static struct attribute_group xen_attr_grp = { .attrs = xen_attrs };
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c
--- a/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c        Wed Nov 16 
11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/balloon/balloon.c        Wed Nov 16 
11:37:29 2005
@@ -381,9 +381,9 @@
     
 }
 
-int balloon_init_watcher(struct notifier_block *notifier,
-                         unsigned long event,
-                         void *data)
+static int balloon_init_watcher(struct notifier_block *notifier,
+                                unsigned long event,
+                                void *data)
 {
        int err;
 
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c        Wed Nov 16 
11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c        Wed Nov 16 
11:37:29 2005
@@ -543,7 +543,7 @@
        spin_lock_init(&blkio_schedule_list_lock);
        INIT_LIST_HEAD(&blkio_schedule_list);
 
-       ret = kernel_thread(blkio_schedule, 0, CLONE_FS | CLONE_FILES);
+       ret = kernel_thread(blkio_schedule, NULL, CLONE_FS | CLONE_FILES);
        BUG_ON(ret < 0);
 
        blkif_xenbus_init();
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c      Wed Nov 16 
11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c      Wed Nov 16 
11:37:29 2005
@@ -679,7 +679,7 @@
        int j;
 
        /* Stage 1: Make a safe copy of the shadow state. */
-       copy = (struct blk_shadow *)kmalloc(sizeof(info->shadow), GFP_KERNEL);
+       copy = kmalloc(sizeof(info->shadow), GFP_KERNEL);
        BUG_ON(copy == NULL);
        memcpy(copy, info->shadow, sizeof(info->shadow));
 
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/drivers/xen/console/console.c
--- a/linux-2.6-xen-sparse/drivers/xen/console/console.c        Wed Nov 16 
11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/console/console.c        Wed Nov 16 
11:37:29 2005
@@ -53,6 +53,7 @@
 #include <asm-xen/xen-public/event_channel.h>
 #include <asm/hypervisor.h>
 #include <asm-xen/evtchn.h>
+#include <asm-xen/xencons.h>
 
 #include "xencons_ring.h"
 /*
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c    Wed Nov 16 
11:36:47 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c    Wed Nov 16 
11:37:29 2005
@@ -854,7 +854,7 @@
 {
        int ret = 0;
 
-        if(xenstored_ready > 0) 
+       if (xenstored_ready > 0) 
                ret = nb->notifier_call(nb, 0, NULL);
        else 
                notifier_chain_register(&xenstore_chain, nb);
@@ -884,7 +884,7 @@
        register_xenbus_watch(&be_watch);
 
        /* Notify others that xenstore is up */
-       notifier_call_chain(&xenstore_chain, 0, 0);
+       notifier_call_chain(&xenstore_chain, 0, NULL);
 }
 
 
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h        Wed Nov 16 
11:36:47 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h        Wed Nov 16 
11:37:29 2005
@@ -228,7 +228,7 @@
  * used as the IO-area pointer (it can be iounmapped as well, so the
  * analogy with PCI is quite large):
  */
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
 
 #define isa_readb(a) readb(__ISA_IO_base + (a))
 #define isa_readw(a) readw(__ISA_IO_base + (a))
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h      Wed Nov 16 
11:36:47 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h      Wed Nov 16 
11:37:29 2005
@@ -298,7 +298,7 @@
  * used as the IO-area pointer (it can be iounmapped as well, so the
  * analogy with PCI is quite large):
  */
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
 
 #define isa_readb(a) readb(__ISA_IO_base + (a))
 #define isa_readw(a) readw(__ISA_IO_base + (a))
diff -r 725bf42d4713 -r 50dcb6266990 tools/libxc/xc_linux_build.c
--- a/tools/libxc/xc_linux_build.c      Wed Nov 16 11:36:47 2005
+++ b/tools/libxc/xc_linux_build.c      Wed Nov 16 11:37:29 2005
@@ -351,7 +351,7 @@
         xc_handle, dom, PAGE_SIZE, PROT_READ|PROT_WRITE, page_array[0]);
     memset(start_info, 0, sizeof(*start_info));
     rc = xc_version(xc_handle, XENVER_version, NULL);
-    sprintf(start_info->magic, "xen-%i.%i", rc >> 16, rc & (0xFFFF));
+    sprintf(start_info->magic, "xen-%i.%i-ia64", rc >> 16, rc & (0xFFFF));
     start_info->flags        = flags;
     start_info->store_mfn    = nr_pages - 2;
     start_info->store_evtchn = store_evtchn;
@@ -628,7 +628,9 @@
         page_array[(vstartinfo_start-dsi.v_start)>>PAGE_SHIFT]);
     memset(start_info, 0, sizeof(*start_info));
     rc = xc_version(xc_handle, XENVER_version, NULL);
-    sprintf(start_info->magic, "xen-%i.%i", rc >> 16, rc & (0xFFFF));
+    sprintf(start_info->magic, "xen-%i.%i-x86_%d%s",
+            rc >> 16, rc & (0xFFFF), sizeof(long)*8,
+            dsi.pae_kernel ? "p" : "");
     start_info->nr_pages     = nr_pages;
     start_info->shared_info  = shared_info_frame << PAGE_SHIFT;
     start_info->flags        = flags;
diff -r 725bf42d4713 -r 50dcb6266990 tools/python/xen/xend/XendClient.py
--- a/tools/python/xen/xend/XendClient.py       Wed Nov 16 11:36:47 2005
+++ b/tools/python/xen/xend/XendClient.py       Wed Nov 16 11:37:29 2005
@@ -301,13 +301,6 @@
         return self.xendPost(self.domainurl(dom),
                             {'op'    : 'set_vcpus',
                              'vcpus' : vcpus })
-
-    def xend_domain_vif_limit(self, id, vif, credit, period):
-        return self.xendPost(self.domainurl(id),
-                            { 'op'      : 'vif_limit_set',
-                              'vif'     : vif,
-                              'credit'  : credit,
-                              'period'  : period })
 
     def xend_domain_devices(self, id, type):
         return self.xendPost(self.domainurl(id),
diff -r 725bf42d4713 -r 50dcb6266990 tools/python/xen/xend/XendDomain.py
--- a/tools/python/xen/xend/XendDomain.py       Wed Nov 16 11:36:47 2005
+++ b/tools/python/xen/xend/XendDomain.py       Wed Nov 16 11:37:29 2005
@@ -466,17 +466,6 @@
         except Exception, ex:
             raise XendError(str(ex))
 
-
-    def domain_vif_limit_set(self, domid, vif, credit, period):
-        """Limit the vif's transmission rate
-        """
-        dominfo = self.domain_lookup(domid)
-        dev = dominfo.getDevice('vif', vif)
-        if not dev:
-            raise XendError("invalid vif")
-        return dev.setCreditLimit(credit, period)
-
-
     def domain_maxmem_set(self, domid, mem):
         """Set the memory limit for a domain.
 
diff -r 725bf42d4713 -r 50dcb6266990 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py       Wed Nov 16 11:36:47 2005
+++ b/tools/python/xen/xm/main.py       Wed Nov 16 11:37:29 2005
@@ -118,8 +118,6 @@
         Create a new virtual network device 
     network-detach  <DomId> <DevId>  Destroy a domain's virtual network
                                      device, where <DevId> is the device ID.
-    network-limit   <DomId> <Vif> <Credit> <Period>
-        Limit the transmission rate of a virtual network interface
     network-list    <DomId>        List virtual network interfaces for a domain
 
   Vnet commands:
@@ -556,13 +554,6 @@
 def xm_log(args):
     from xen.xend.XendClient import server
     print server.xend_node_log()
-
-def xm_network_limit(args):
-    arg_check(args,4,"network-limit")
-    dom = args[0]
-    v = map(int, args[1:4])
-    from xen.xend.XendClient import server
-    server.xend_domain_vif_limit(dom, *v)
 
 def xm_network_list(args):
     arg_check(args,1,"network-list")
@@ -716,7 +707,6 @@
     # network
     "network-attach": xm_network_attach,
     "network-detach": xm_network_detach,
-    "network-limit": xm_network_limit,
     "network-list": xm_network_list,
     # vnet
     "vnet-list": xm_vnet_list,
@@ -739,7 +729,6 @@
 aliases = {
     "balloon": "mem-set",
     "vif-list": "network-list",
-    "vif-limit": "network-limit",
     "vbd-create": "block-create",
     "vbd-destroy": "block-destroy",
     "vbd-list": "block-list",
diff -r 725bf42d4713 -r 50dcb6266990 xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c        Wed Nov 16 11:36:47 2005
+++ b/xen/arch/ia64/xen/domain.c        Wed Nov 16 11:37:29 2005
@@ -952,7 +952,7 @@
        si = (start_info_t *)alloc_xenheap_page();
        memset(si, 0, PAGE_SIZE);
        d->shared_info->arch.start_info_pfn = __pa(si) >> PAGE_SHIFT;
-       sprintf(si->magic, "Xen-%i.%i", XEN_VERSION, XEN_SUBVERSION);
+       sprintf(si->magic, "xen-%i.%i-ia64", XEN_VERSION, XEN_SUBVERSION);
 
 #if 0
        si->nr_pages     = d->tot_pages;
diff -r 725bf42d4713 -r 50dcb6266990 xen/arch/x86/domain_build.c
--- a/xen/arch/x86/domain_build.c       Wed Nov 16 11:36:47 2005
+++ b/xen/arch/x86/domain_build.c       Wed Nov 16 11:37:29 2005
@@ -639,7 +639,8 @@
     si->pt_base      = vpt_start;
     si->nr_pt_frames = nr_pt_pages;
     si->mfn_list     = vphysmap_start;
-    sprintf(si->magic, "Xen-%i.%i", XEN_VERSION, XEN_SUBVERSION);
+    sprintf(si->magic, "xen-%i.%i-x86_%d%s",
+            XEN_VERSION, XEN_SUBVERSION, BITS_PER_LONG, xen_pae ? "p" : "");
 
     /* Write the phys->machine and machine->phys table entries. */
     for ( pfn = 0; pfn < d->tot_pages; pfn++ )
diff -r 725bf42d4713 -r 50dcb6266990 xen/arch/x86/shadow.c
--- a/xen/arch/x86/shadow.c     Wed Nov 16 11:36:47 2005
+++ b/xen/arch/x86/shadow.c     Wed Nov 16 11:37:29 2005
@@ -873,7 +873,7 @@
 }
 
 static struct out_of_sync_entry *
-mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
+__mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
                              unsigned long mfn)
 {
     struct domain *d = v->domain;
@@ -909,7 +909,6 @@
     entry->v = v;
     entry->gpfn = gpfn;
     entry->gmfn = mfn;
-    entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
     entry->writable_pl1e = -1;
 
 #if 0 // this code has not been updated for 32pae & 64 bit modes
@@ -923,20 +922,34 @@
     //
     get_page(page, d);
 
+    return entry;
+}
+
+static struct out_of_sync_entry *
+mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
+                             unsigned long mfn)
+{
+    struct out_of_sync_entry *entry =
+        __mark_mfn_out_of_sync(v, gpfn, mfn);
+    struct domain *d = v->domain;
+
+    entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
     // Add to the out-of-sync list
     //
     entry->next = d->arch.out_of_sync;
     d->arch.out_of_sync = entry;
 
     return entry;
+
 }
 
 static void shadow_mark_va_out_of_sync(
     struct vcpu *v, unsigned long gpfn, unsigned long mfn, unsigned long va)
 {
     struct out_of_sync_entry *entry =
-        shadow_mark_mfn_out_of_sync(v, gpfn, mfn);
+        __mark_mfn_out_of_sync(v, gpfn, mfn);
     l2_pgentry_t sl2e;
+    struct domain *d = v->domain;
 
 #if CONFIG_PAGING_LEVELS >= 4
     {
@@ -971,6 +984,7 @@
     }
     ASSERT(l2e_get_flags(sl2e) & _PAGE_PRESENT);
 
+    entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
     // NB: this is stored as a machine address.
     entry->writable_pl1e =
         l2e_get_paddr(sl2e) | (sizeof(l1_pgentry_t) * l1_table_offset(va));
@@ -982,6 +996,11 @@
     //
     if ( !get_shadow_ref(l2e_get_pfn(sl2e)) )
         BUG();
+
+    // Add to the out-of-sync list
+    //
+    entry->next = d->arch.out_of_sync;
+    d->arch.out_of_sync = entry;
 
     FSH_LOG("mark_out_of_sync(va=%lx -> writable_pl1e=%lx)",
             va, entry->writable_pl1e);
diff -r 725bf42d4713 -r 50dcb6266990 xen/arch/x86/shadow32.c
--- a/xen/arch/x86/shadow32.c   Wed Nov 16 11:36:47 2005
+++ b/xen/arch/x86/shadow32.c   Wed Nov 16 11:37:29 2005
@@ -1826,7 +1826,7 @@
 }
 
 struct out_of_sync_entry *
-shadow_mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
+__shadow_mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
                              unsigned long mfn)
 {
     struct domain *d = v->domain;
@@ -1862,7 +1862,6 @@
     entry->v = v;
     entry->gpfn = gpfn;
     entry->gmfn = mfn;
-    entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
     entry->writable_pl1e = -1;
 
 #if SHADOW_DEBUG
@@ -1874,6 +1873,18 @@
     //
     get_page(page, d);
 
+    return entry;
+}
+
+struct out_of_sync_entry *
+shadow_mark_mfn_out_of_sync(struct vcpu *v, unsigned long gpfn,
+                             unsigned long mfn)
+{
+    struct out_of_sync_entry *entry =
+      __shadow_mark_mfn_out_of_sync(v, gpfn, mfn);
+    struct domain *d = v->domain;
+
+    entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
     // Add to the out-of-sync list
     //
     entry->next = d->arch.out_of_sync;
@@ -1886,8 +1897,9 @@
     struct vcpu *v, unsigned long gpfn, unsigned long mfn, unsigned long va)
 {
     struct out_of_sync_entry *entry =
-        shadow_mark_mfn_out_of_sync(v, gpfn, mfn);
+        __shadow_mark_mfn_out_of_sync(v, gpfn, mfn);
     l2_pgentry_t sl2e;
+    struct domain *d = v->domain;
 
     // We need the address of shadow PTE that maps @va.
     // It might not exist yet.  Make sure it's there.
@@ -1902,6 +1914,7 @@
     }
     ASSERT(l2e_get_flags(sl2e) & _PAGE_PRESENT);
 
+    entry->snapshot_mfn = shadow_make_snapshot(d, gpfn, mfn);
     // NB: this is stored as a machine address.
     entry->writable_pl1e =
         l2e_get_paddr(sl2e) | (sizeof(l1_pgentry_t) * l1_table_offset(va));
@@ -1913,6 +1926,11 @@
     //
     if ( !get_shadow_ref(l2e_get_pfn(sl2e)) )
         BUG();
+
+    // Add to the out-of-sync list
+    //
+    entry->next = d->arch.out_of_sync;
+    d->arch.out_of_sync = entry;
 
     FSH_LOG("mark_out_of_sync(va=%lx -> writable_pl1e=%lx)",
             va, entry->writable_pl1e);
diff -r 725bf42d4713 -r 50dcb6266990 xen/include/public/xen.h
--- a/xen/include/public/xen.h  Wed Nov 16 11:36:47 2005
+++ b/xen/include/public/xen.h  Wed Nov 16 11:37:29 2005
@@ -408,7 +408,7 @@
 #define MAX_GUEST_CMDLINE 1024
 typedef struct start_info {
     /* THE FOLLOWING ARE FILLED IN BOTH ON INITIAL BOOT AND ON RESUME.    */
-    char magic[32];             /* "Xen-<version>.<subversion>". */
+    char magic[32];             /* "xen-<version>-<platform>".            */
     unsigned long nr_pages;     /* Total pages allocated to this domain.  */
     unsigned long shared_info;  /* MACHINE address of shared info struct. */
     uint32_t flags;             /* SIF_xxx flags.                         */
diff -r 725bf42d4713 -r 50dcb6266990 
linux-2.6-xen-sparse/include/asm-xen/xencons.h
--- /dev/null   Wed Nov 16 11:36:47 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/xencons.h    Wed Nov 16 11:37:29 2005
@@ -0,0 +1,7 @@
+#ifndef __ASM_XENCONS_H__
+#define __ASM_XENCONS_H__
+
+void xencons_force_flush(void);
+void xencons_resume(void);
+
+#endif /* __ASM_XENCONS_H__ */

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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