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-ppc-devel

[XenPPC] [xenppc-unstable] Fix dummy domains (DOM_IO and DOM_XEN) creati

To: xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
Subject: [XenPPC] [xenppc-unstable] Fix dummy domains (DOM_IO and DOM_XEN) creation so that
From: Xen patchbot-xenppc-unstable <patchbot-xenppc-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 02 Jun 2006 17:56:45 +0000
Delivery-date: Fri, 02 Jun 2006 10:58:42 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ppc-devel-request@lists.xensource.com?subject=help>
List-id: Xen PPC development <xen-ppc-devel.lists.xensource.com>
List-post: <mailto:xen-ppc-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-ppc-devel-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxxxx
# Node ID ab627e9da8fb7be385f4e713ac184c275aba7c7c
# Parent  2dd8e7c4472897a86cac635b6982fa55f1ab6e07
Fix dummy domains (DOM_IO and DOM_XEN) creation so that
list heads are initialised.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 xen/arch/ia64/xen/domain.c |   14 ++------------
 xen/arch/x86/mm.c          |   12 ++++--------
 xen/common/domain.c        |   19 +++++--------------
 xen/common/schedule.c      |   14 +++++++++++---
 xen/include/xen/sched.h    |    4 ++--
 5 files changed, 24 insertions(+), 39 deletions(-)

diff -r 2dd8e7c44728 -r ab627e9da8fb xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c        Thu Jun 01 16:31:37 2006 +0100
+++ b/xen/arch/ia64/xen/domain.c        Thu Jun 01 16:39:42 2006 +0100
@@ -92,26 +92,16 @@ alloc_dom_xen_and_dom_io(void)
      * Any Xen-heap pages that we will allow to be mapped will have
      * their domain field set to dom_xen.
      */
-    dom_xen = alloc_domain();
+    dom_xen = alloc_domain(DOMID_XEN);
     BUG_ON(dom_xen == NULL);
-    spin_lock_init(&dom_xen->page_alloc_lock);
-    INIT_LIST_HEAD(&dom_xen->page_list);
-    INIT_LIST_HEAD(&dom_xen->xenpage_list);
-    atomic_set(&dom_xen->refcnt, 1);
-    dom_xen->domain_id = DOMID_XEN;
 
     /*
      * Initialise our DOMID_IO domain.
      * This domain owns I/O pages that are within the range of the page_info
      * array. Mappings occur at the priv of the caller.
      */
-    dom_io = alloc_domain();
+    dom_io = alloc_domain(DOMID_IO);
     BUG_ON(dom_io == NULL);
-    spin_lock_init(&dom_io->page_alloc_lock);
-    INIT_LIST_HEAD(&dom_io->page_list);
-    INIT_LIST_HEAD(&dom_io->xenpage_list);
-    atomic_set(&dom_io->refcnt, 1);
-    dom_io->domain_id = DOMID_IO;
 }
 #endif
 
diff -r 2dd8e7c44728 -r ab627e9da8fb xen/arch/x86/mm.c
--- a/xen/arch/x86/mm.c Thu Jun 01 16:31:37 2006 +0100
+++ b/xen/arch/x86/mm.c Thu Jun 01 16:39:42 2006 +0100
@@ -187,20 +187,16 @@ void arch_init_memory(void)
      * Any Xen-heap pages that we will allow to be mapped will have
      * their domain field set to dom_xen.
      */
-    dom_xen = alloc_domain();
-    spin_lock_init(&dom_xen->page_alloc_lock);
-    atomic_set(&dom_xen->refcnt, 1);
-    dom_xen->domain_id = DOMID_XEN;
+    dom_xen = alloc_domain(DOMID_XEN);
+    BUG_ON(dom_xen == NULL);
 
     /*
      * Initialise our DOMID_IO domain.
      * This domain owns I/O pages that are within the range of the page_info
      * array. Mappings occur at the priv of the caller.
      */
-    dom_io = alloc_domain();
-    spin_lock_init(&dom_io->page_alloc_lock);
-    atomic_set(&dom_io->refcnt, 1);
-    dom_io->domain_id = DOMID_IO;
+    dom_io = alloc_domain(DOMID_IO);
+    BUG_ON(dom_io == NULL);
 
     /* First 1MB of RAM is historically marked as I/O. */
     for ( i = 0; i < 0x100; i++ )
diff -r 2dd8e7c44728 -r ab627e9da8fb xen/common/domain.c
--- a/xen/common/domain.c       Thu Jun 01 16:31:37 2006 +0100
+++ b/xen/common/domain.c       Thu Jun 01 16:39:42 2006 +0100
@@ -32,22 +32,13 @@ struct domain *domain_list;
 
 struct domain *dom0;
 
-struct domain *domain_create(domid_t dom_id, unsigned int cpu)
+struct domain *domain_create(domid_t domid, unsigned int cpu)
 {
     struct domain *d, **pd;
     struct vcpu *v;
 
-    if ( (d = alloc_domain()) == NULL )
+    if ( (d = alloc_domain(domid)) == NULL )
         return NULL;
-
-    d->domain_id = dom_id;
-
-    atomic_set(&d->refcnt, 1);
-
-    spin_lock_init(&d->big_lock);
-    spin_lock_init(&d->page_alloc_lock);
-    INIT_LIST_HEAD(&d->page_list);
-    INIT_LIST_HEAD(&d->xenpage_list);
 
     rangeset_domain_initialise(d);
 
@@ -74,14 +65,14 @@ struct domain *domain_create(domid_t dom
     if ( !is_idle_domain(d) )
     {
         write_lock(&domlist_lock);
-        pd = &domain_list; /* NB. domain_list maintained in order of dom_id. */
+        pd = &domain_list; /* NB. domain_list maintained in order of domid. */
         for ( pd = &domain_list; *pd != NULL; pd = &(*pd)->next_in_list )
             if ( (*pd)->domain_id > d->domain_id )
                 break;
         d->next_in_list = *pd;
         *pd = d;
-        d->next_in_hashbucket = domain_hash[DOMAIN_HASH(dom_id)];
-        domain_hash[DOMAIN_HASH(dom_id)] = d;
+        d->next_in_hashbucket = domain_hash[DOMAIN_HASH(domid)];
+        domain_hash[DOMAIN_HASH(domid)] = d;
         write_unlock(&domlist_lock);
     }
 
diff -r 2dd8e7c44728 -r ab627e9da8fb xen/common/schedule.c
--- a/xen/common/schedule.c     Thu Jun 01 16:31:37 2006 +0100
+++ b/xen/common/schedule.c     Thu Jun 01 16:39:42 2006 +0100
@@ -99,12 +99,20 @@ void vcpu_runstate_get(struct vcpu *v, s
     }
 }
 
-struct domain *alloc_domain(void)
+struct domain *alloc_domain(domid_t domid)
 {
     struct domain *d;
 
-    if ( (d = xmalloc(struct domain)) != NULL )
-        memset(d, 0, sizeof(*d));
+    if ( (d = xmalloc(struct domain)) == NULL )
+        return NULL;
+
+    memset(d, 0, sizeof(*d));
+    d->domain_id = domid;
+    atomic_set(&d->refcnt, 1);
+    spin_lock_init(&d->big_lock);
+    spin_lock_init(&d->page_alloc_lock);
+    INIT_LIST_HEAD(&d->page_list);
+    INIT_LIST_HEAD(&d->xenpage_list);
 
     return d;
 }
diff -r 2dd8e7c44728 -r ab627e9da8fb xen/include/xen/sched.h
--- a/xen/include/xen/sched.h   Thu Jun 01 16:31:37 2006 +0100
+++ b/xen/include/xen/sched.h   Thu Jun 01 16:39:42 2006 +0100
@@ -189,7 +189,7 @@ struct vcpu *alloc_vcpu(
 struct vcpu *alloc_vcpu(
     struct domain *d, unsigned int vcpu_id, unsigned int cpu_id);
 
-struct domain *alloc_domain(void);
+struct domain *alloc_domain(domid_t domid);
 void free_domain(struct domain *d);
 
 #define DOMAIN_DESTROYED (1<<31) /* assumes atomic_t is >= 32 bits */
@@ -226,7 +226,7 @@ static inline void get_knownalive_domain
 }
 
 extern struct domain *domain_create(
-    domid_t dom_id, unsigned int cpu);
+    domid_t domid, unsigned int cpu);
 extern int construct_dom0(
     struct domain *d,
     unsigned long image_start, unsigned long image_len, 

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

<Prev in Thread] Current Thread [Next in Thread>
  • [XenPPC] [xenppc-unstable] Fix dummy domains (DOM_IO and DOM_XEN) creation so that, Xen patchbot-xenppc-unstable <=