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 05d8c51c7550dccc5d342275ba64af457d3388fd
# Parent  de30faffd672dca15ed031f48f57f05c9f069223
Merged.

diff -r de30faffd672 -r 05d8c51c7550 
linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c Wed Mar 29 17:07:36 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c Wed Mar 29 17:41:30 2006
@@ -253,6 +253,7 @@
 
        switch (frontend_state) {
        case XenbusStateInitialising:
+       case XenbusStateConnected:
                break;
 
        case XenbusStateInitialised:
diff -r de30faffd672 -r 05d8c51c7550 xen/arch/x86/domain.c
--- a/xen/arch/x86/domain.c     Wed Mar 29 17:07:36 2006
+++ b/xen/arch/x86/domain.c     Wed Mar 29 17:41:30 2006
@@ -226,6 +226,13 @@
 
     v->arch.schedule_tail = is_idle_domain(d) ?
         continue_idle_domain : continue_nonidle_domain;
+        percpu_ctxt[vcpu_id].curr_vcpu = v;
+        v->arch.schedule_tail = continue_idle_domain;
+    }
+    else
+    {
+        v->arch.schedule_tail = continue_nonidle_domain;
+    }
 
     v->arch.ctxt_switch_from = paravirt_ctxt_switch_from;
     v->arch.ctxt_switch_to   = paravirt_ctxt_switch_to;
diff -r de30faffd672 -r 05d8c51c7550 xen/arch/x86/smpboot.c
--- a/xen/arch/x86/smpboot.c    Wed Mar 29 17:07:36 2006
+++ b/xen/arch/x86/smpboot.c    Wed Mar 29 17:41:30 2006
@@ -881,6 +881,7 @@
  * Returns zero if CPU booted OK, else error code from wakeup_secondary_cpu.
  */
 {
+       struct vcpu *v;
        unsigned long boot_error;
        int timeout;
        unsigned long start_eip;
diff -r de30faffd672 -r 05d8c51c7550 xen/include/asm-x86/shadow.h
--- a/xen/include/asm-x86/shadow.h      Wed Mar 29 17:07:36 2006
+++ b/xen/include/asm-x86/shadow.h      Wed Mar 29 17:41:30 2006
@@ -662,10 +662,14 @@
     if ( likely(!shadow_mode_refcounts(d)) )
         return;
 
+    shadow_lock(d);
+
     if ( page_out_of_sync(page) )
         __shadow_sync_mfn(d, page_to_mfn(page));
 
     shadow_remove_all_access(d, page_to_mfn(page));
+
+    shadow_unlock(d);
 }
 #endif
 
@@ -698,6 +702,46 @@
 
     return 1;
 }
+
+    shadow_sync_and_drop_references(d, mfn_to_page(mfn));
+    set_p2m_entry(d, gpfn, -1, &c1, &c2);
+    set_gpfn_from_mfn(mfn, INVALID_M2P_ENTRY);
+    shadow_unlock(d);
+    domain_mmap_cache_destroy(&c1);
+    domain_mmap_cache_destroy(&c2);
+}
+
+/************************************************************************/
+
+/*
+ * Add another shadow reference to smfn.
+ */
+static inline int
+get_shadow_ref(unsigned long smfn)
+{
+    u32 x, nx;
+
+    ASSERT(mfn_valid(smfn));
+
+    x = mfn_to_page(smfn)->count_info;
+    nx = x + 1;
+
+    if ( unlikely(nx == 0) )
+    {
+        printk("get_shadow_ref overflow, gmfn=%" PRtype_info  " smfn=%lx\n",
+               mfn_to_page(smfn)->u.inuse.type_info & PGT_mfn_mask,
+               smfn);
+        BUG();
+    }
+    
+    // Guarded by the shadow lock...
+    //
+    mfn_to_page(smfn)->count_info = nx;
+
+    return 1;
+}
+
+extern void free_shadow_page(unsigned long smfn);
 
 /*
  * Drop a shadow reference to smfn.

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

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