WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[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

<Prev in Thread] Current Thread [Next in Thread>