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] [xen-unstable] Revert 19661:326b24bfa9f9 "Free pirq_to_e

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Revert 19661:326b24bfa9f9 "Free pirq_to_evtchn/pirq_mask..."
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 30 May 2009 02:30:16 -0700
Delivery-date: Sat, 30 May 2009 02:30:44 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1243585370 -3600
# Node ID 527b628b8e83d2f85e22892e843dee75978c9d5f
# Parent  f3bed18decfcc86f075e436a369a3556f4bef970
Revert 19661:326b24bfa9f9 "Free pirq_to_evtchn/pirq_mask..."

Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
 xen/common/domain.c        |   11 +++++++++++
 xen/common/event_channel.c |   24 +-----------------------
 2 files changed, 12 insertions(+), 23 deletions(-)

diff -r f3bed18decfc -r 527b628b8e83 xen/common/domain.c
--- a/xen/common/domain.c       Fri May 29 09:19:30 2009 +0100
+++ b/xen/common/domain.c       Fri May 29 09:22:50 2009 +0100
@@ -261,6 +261,13 @@ struct domain *domain_create(
         if ( evtchn_init(d) != 0 )
             goto fail;
         init_status |= INIT_evtchn;
+        d->pirq_to_evtchn = xmalloc_array(u16, d->nr_pirqs);
+        d->pirq_mask = xmalloc_array(unsigned long,
+                                     BITS_TO_LONGS(d->nr_pirqs));
+        if ( !d->pirq_to_evtchn || !d->pirq_mask )
+            goto fail;
+        memset(d->pirq_to_evtchn, 0, d->nr_pirqs * sizeof(*d->pirq_to_evtchn));
+        bitmap_zero(d->pirq_mask, d->nr_pirqs);
 
         if ( grant_table_create(d) != 0 )
             goto fail;
@@ -303,7 +310,11 @@ struct domain *domain_create(
     if ( init_status & INIT_gnttab )
         grant_table_destroy(d);
     if ( init_status & INIT_evtchn )
+    {
+        xfree(d->pirq_mask);
+        xfree(d->pirq_to_evtchn);
         evtchn_destroy(d);
+    }
     if ( init_status & INIT_rangeset )
         rangeset_domain_destroy(d);
     if ( init_status & INIT_xsm )
diff -r f3bed18decfc -r 527b628b8e83 xen/common/event_channel.c
--- a/xen/common/event_channel.c        Fri May 29 09:19:30 2009 +0100
+++ b/xen/common/event_channel.c        Fri May 29 09:22:50 2009 +0100
@@ -1013,27 +1013,10 @@ int evtchn_init(struct domain *d)
 int evtchn_init(struct domain *d)
 {
     spin_lock_init(&d->event_lock);
-
-    d->pirq_to_evtchn = xmalloc_array(u16, d->nr_pirqs);
-    d->pirq_mask = xmalloc_array(
-        unsigned long, BITS_TO_LONGS(d->nr_pirqs));
-    if ( (d->pirq_to_evtchn == NULL) || (d->pirq_mask == NULL) )
-        goto fail;
-    memset(d->pirq_to_evtchn, 0, d->nr_pirqs * sizeof(*d->pirq_to_evtchn));
-    bitmap_zero(d->pirq_mask, d->nr_pirqs);
-
     if ( get_free_port(d) != 0 )
-        goto fail;
+        return -EINVAL;
     evtchn_from_port(d, 0)->state = ECS_RESERVED;
-
     return 0;
-
- fail:
-    xfree(d->pirq_to_evtchn);
-    d->pirq_to_evtchn = NULL;
-    xfree(d->pirq_mask);
-    d->pirq_mask = NULL;
-    return -ENOMEM;
 }
 
 
@@ -1061,11 +1044,6 @@ void evtchn_destroy(struct domain *d)
         d->evtchn[i] = NULL;
     }
     spin_unlock(&d->event_lock);
-
-    xfree(d->pirq_to_evtchn);
-    d->pirq_to_evtchn = NULL;
-    xfree(d->pirq_mask);
-    d->pirq_mask = NULL;
 }
 
 static void domain_dump_evtchn_info(struct domain *d)

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Revert 19661:326b24bfa9f9 "Free pirq_to_evtchn/pirq_mask...", Xen patchbot-unstable <=