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

[Xen-devel] [PATCH 2/4] use xzalloc in common code



Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

--- a/xen/common/cpupool.c
+++ b/xen/common/cpupool.c
@@ -39,7 +39,7 @@ DEFINE_PER_CPU(struct cpupool *, cpupool
 
 static struct cpupool *alloc_cpupool_struct(void)
 {
-    return xmalloc(struct cpupool);
+    return xzalloc(struct cpupool);
 }
 
 static void free_cpupool_struct(struct cpupool *c)
@@ -118,7 +118,6 @@ static struct cpupool *cpupool_create(
     *perr = -ENOMEM;
     if ( (c = alloc_cpupool_struct()) == NULL )
         return NULL;
-    memset(c, 0, sizeof(*c));
 
     /* One reference for caller, one reference for cpupool_destroy(). */
     atomic_set(&c->refcnt, 2);
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -154,11 +154,9 @@ static unsigned int default_vcpu0_locati
 
     /* Do an initial CPU placement. Pick the least-populated CPU. */
     nr_cpus = last_cpu(cpu_online_map) + 1;
-    cnt = xmalloc_array(unsigned int, nr_cpus);
+    cnt = xzalloc_array(unsigned int, nr_cpus);
     if ( cnt )
     {
-        memset(cnt, 0, nr_cpus * sizeof(*cnt));
-
         rcu_read_lock(&domlist_read_lock);
         for_each_domain ( d )
             for_each_vcpu ( d, v )
@@ -510,9 +508,8 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
             BUG_ON(d->vcpu != NULL);
             BUG_ON(d->max_vcpus != 0);
 
-            if ( (vcpus = xmalloc_array(struct vcpu *, max)) == NULL )
+            if ( (vcpus = xzalloc_array(struct vcpu *, max)) == NULL )
                 goto maxvcpu_out;
-            memset(vcpus, 0, max * sizeof(*vcpus));
 
             /* Install vcpu array /then/ update max_vcpus. */
             d->vcpu = vcpus;
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -100,10 +100,9 @@ static int get_free_port(struct domain *
     if ( port == MAX_EVTCHNS(d) )
         return -ENOSPC;
 
-    chn = xmalloc_array(struct evtchn, EVTCHNS_PER_BUCKET);
+    chn = xzalloc_array(struct evtchn, EVTCHNS_PER_BUCKET);
     if ( unlikely(chn == NULL) )
         return -ENOMEM;
-    memset(chn, 0, EVTCHNS_PER_BUCKET * sizeof(*chn));
     bucket_from_port(d, port) = chn;
 
     for ( i = 0; i < EVTCHNS_PER_BUCKET; i++ )
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -2400,19 +2400,17 @@ grant_table_create(
     struct grant_table *t;
     int                 i;
 
-    if ( (t = xmalloc(struct grant_table)) == NULL )
+    if ( (t = xzalloc(struct grant_table)) == NULL )
         goto no_mem_0;
 
     /* Simple stuff. */
-    memset(t, 0, sizeof(*t));
     spin_lock_init(&t->lock);
     t->nr_grant_frames = INITIAL_NR_GRANT_FRAMES;
 
     /* Active grant table. */
-    if ( (t->active = xmalloc_array(struct active_grant_entry *,
+    if ( (t->active = xzalloc_array(struct active_grant_entry *,
                                     max_nr_active_grant_frames())) == NULL )
         goto no_mem_1;
-    memset(t->active, 0, max_nr_active_grant_frames() * sizeof(t->active[0]));
     for ( i = 0;
           i < num_act_frames_from_sha_frames(INITIAL_NR_GRANT_FRAMES); i++ )
     {
@@ -2422,10 +2420,9 @@ grant_table_create(
     }
 
     /* Tracking of mapped foreign frames table */
-    if ( (t->maptrack = xmalloc_array(struct grant_mapping *,
+    if ( (t->maptrack = xzalloc_array(struct grant_mapping *,
                                       max_nr_maptrack_frames())) == NULL )
         goto no_mem_2;
-    memset(t->maptrack, 0, max_nr_maptrack_frames() * sizeof(t->maptrack[0]));
     if ( (t->maptrack[0] = alloc_xenheap_page()) == NULL )
         goto no_mem_3;
     clear_page(t->maptrack[0]);
@@ -2434,9 +2431,8 @@ grant_table_create(
         t->maptrack[0][i].ref = i+1;
 
     /* Shared grant table. */
-    if ( (t->shared_raw = xmalloc_array(void *, max_nr_grant_frames)) == NULL )
+    if ( (t->shared_raw = xzalloc_array(void *, max_nr_grant_frames)) == NULL )
         goto no_mem_3;
-    memset(t->shared_raw, 0, max_nr_grant_frames * sizeof(t->shared_raw[0]));
     for ( i = 0; i < INITIAL_NR_GRANT_FRAMES; i++ )
     {
         if ( (t->shared_raw[i] = alloc_xenheap_page()) == NULL )
@@ -2448,12 +2444,10 @@ grant_table_create(
         gnttab_create_shared_page(d, t, i);
 
     /* Status pages for grant table - for version 2 */
-    t->status = xmalloc_array(grant_status_t *,
+    t->status = xzalloc_array(grant_status_t *,
                               grant_to_status_frames(max_nr_grant_frames));
     if ( t->status == NULL )
         goto no_mem_4;
-    memset(t->status, 0,
-           grant_to_status_frames(max_nr_grant_frames) * sizeof(t->status[0]));
     t->nr_status_frames = 0;
 
     /* Okay, install the structure. */
--- a/xen/common/sched_arinc653.c
+++ b/xen/common/sched_arinc653.c
@@ -341,11 +341,10 @@ a653sched_init(struct scheduler *ops)
 {
     a653sched_priv_t *prv;
 
-    prv = xmalloc(a653sched_priv_t);
+    prv = xzalloc(a653sched_priv_t);
     if ( prv == NULL )
         return -ENOMEM;
 
-    memset(prv, 0, sizeof(*prv));
     ops->sched_data = prv;
 
     prv->schedule[0].dom_handle[0] = '\0';
--- a/xen/common/sched_credit.c
+++ b/xen/common/sched_credit.c
@@ -351,10 +351,9 @@ csched_alloc_pdata(const struct schedule
     unsigned long flags;
 
     /* Allocate per-PCPU info */
-    spc = xmalloc(struct csched_pcpu);
+    spc = xzalloc(struct csched_pcpu);
     if ( spc == NULL )
         return NULL;
-    memset(spc, 0, sizeof(*spc));
 
     spin_lock_irqsave(&prv->lock, flags);
 
@@ -649,10 +648,9 @@ csched_alloc_vdata(const struct schedule
     struct csched_vcpu *svc;
 
     /* Allocate per-VCPU info */
-    svc = xmalloc(struct csched_vcpu);
+    svc = xzalloc(struct csched_vcpu);
     if ( svc == NULL )
         return NULL;
-    memset(svc, 0, sizeof(*svc));
 
     INIT_LIST_HEAD(&svc->runq_elem);
     INIT_LIST_HEAD(&svc->active_vcpu_elem);
@@ -837,10 +835,9 @@ csched_alloc_domdata(const struct schedu
 {
     struct csched_dom *sdom;
 
-    sdom = xmalloc(struct csched_dom);
+    sdom = xzalloc(struct csched_dom);
     if ( sdom == NULL )
         return NULL;
-    memset(sdom, 0, sizeof(*sdom));
 
     /* Initialize credit and weight */
     INIT_LIST_HEAD(&sdom->active_vcpu);
@@ -1513,11 +1510,10 @@ csched_init(struct scheduler *ops)
 {
     struct csched_private *prv;
 
-    prv = xmalloc(struct csched_private);
+    prv = xzalloc(struct csched_private);
     if ( prv == NULL )
         return -ENOMEM;
 
-    memset(prv, 0, sizeof(*prv));
     ops->sched_data = prv;
     spin_lock_init(&prv->lock);
     INIT_LIST_HEAD(&prv->active_sdom);
--- a/xen/common/sched_credit2.c
+++ b/xen/common/sched_credit2.c
@@ -732,10 +732,9 @@ csched_alloc_vdata(const struct schedule
     struct csched_vcpu *svc;
 
     /* Allocate per-VCPU info */
-    svc = xmalloc(struct csched_vcpu);
+    svc = xzalloc(struct csched_vcpu);
     if ( svc == NULL )
         return NULL;
-    memset(svc, 0, sizeof(*svc));
 
     INIT_LIST_HEAD(&svc->rqd_elem);
     INIT_LIST_HEAD(&svc->sdom_elem);
@@ -1437,10 +1436,9 @@ csched_alloc_domdata(const struct schedu
     struct csched_dom *sdom;
     int flags;
 
-    sdom = xmalloc(struct csched_dom);
+    sdom = xzalloc(struct csched_dom);
     if ( sdom == NULL )
         return NULL;
-    memset(sdom, 0, sizeof(*sdom));
 
     /* Initialize credit and weight */
     INIT_LIST_HEAD(&sdom->vcpu);
@@ -2065,10 +2063,9 @@ csched_init(struct scheduler *ops)
      * set up basic structures, and a callback when the CPU info is
      * available. */
 
-    prv = xmalloc(struct csched_private);
+    prv = xzalloc(struct csched_private);
     if ( prv == NULL )
         return -ENOMEM;
-    memset(prv, 0, sizeof(*prv));
     ops->sched_data = prv;
     spin_lock_init(&prv->lock);
     INIT_LIST_HEAD(&prv->sdom);
--- a/xen/common/sched_sedf.c
+++ b/xen/common/sched_sedf.c
@@ -348,11 +348,10 @@ static void *sedf_alloc_vdata(const stru
 {
     struct sedf_vcpu_info *inf;
 
-    inf = xmalloc(struct sedf_vcpu_info);
+    inf = xzalloc(struct sedf_vcpu_info);
     if ( inf == NULL )
         return NULL;
 
-    memset(inf, 0, sizeof(struct sedf_vcpu_info));
     inf->vcpu = v;
 
     /* Every VCPU gets an equal share of extratime by default. */
@@ -387,9 +386,8 @@ sedf_alloc_pdata(const struct scheduler 
 {
     struct sedf_cpu_info *spc;
 
-    spc = xmalloc(struct sedf_cpu_info);
+    spc = xzalloc(struct sedf_cpu_info);
     BUG_ON(spc == NULL);
-    memset(spc, 0, sizeof(*spc));
     INIT_LIST_HEAD(&spc->waitq);
     INIT_LIST_HEAD(&spc->runnableq);
     INIT_LIST_HEAD(&spc->extraq[EXTRA_PEN_Q]);
@@ -415,15 +413,7 @@ static void sedf_free_vdata(const struct
 static void *
 sedf_alloc_domdata(const struct scheduler *ops, struct domain *d)
 {
-    void *mem;
-
-    mem = xmalloc(struct sedf_dom_info);
-    if ( mem == NULL )
-        return NULL;
-
-    memset(mem, 0, sizeof(struct sedf_dom_info));
-
-    return mem;
+    return xzalloc(struct sedf_dom_info);
 }
 
 static int sedf_init_domain(const struct scheduler *ops, struct domain *d)
@@ -1333,8 +1323,8 @@ static int sedf_adjust_weights(struct cp
     struct vcpu *p;
     struct domain      *d;
     unsigned int        cpu, nr_cpus = last_cpu(cpu_online_map) + 1;
-    int                *sumw = xmalloc_array(int, nr_cpus);
-    s_time_t           *sumt = xmalloc_array(s_time_t, nr_cpus);
+    int                *sumw = xzalloc_array(int, nr_cpus);
+    s_time_t           *sumt = xzalloc_array(s_time_t, nr_cpus);
 
     if ( !sumw || !sumt )
     {
@@ -1342,8 +1332,6 @@ static int sedf_adjust_weights(struct cp
         xfree(sumw);
         return -ENOMEM;
     }
-    memset(sumw, 0, nr_cpus * sizeof(*sumw));
-    memset(sumt, 0, nr_cpus * sizeof(*sumt));
 
     /* Sum across all weights. */
     rcu_read_lock(&domlist_read_lock);
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
@@ -233,14 +233,13 @@ int sched_move_domain(struct domain *d, 
     if ( domdata == NULL )
         return -ENOMEM;
 
-    vcpu_priv = xmalloc_array(void *, d->max_vcpus);
+    vcpu_priv = xzalloc_array(void *, d->max_vcpus);
     if ( vcpu_priv == NULL )
     {
         SCHED_OP(c->sched, free_domdata, domdata);
         return -ENOMEM;
     }
 
-    memset(vcpu_priv, 0, d->max_vcpus * sizeof(void *));
     for_each_vcpu ( d, v )
     {
         vcpu_priv[v->vcpu_id] = SCHED_OP(c->sched, alloc_vdata, v, domdata);
--- a/xen/common/wait.c
+++ b/xen/common/wait.c
@@ -41,11 +41,10 @@ int init_waitqueue_vcpu(struct vcpu *v)
 {
     struct waitqueue_vcpu *wqv;
 
-    wqv = xmalloc(struct waitqueue_vcpu);
+    wqv = xzalloc(struct waitqueue_vcpu);
     if ( wqv == NULL )
         return -ENOMEM;
 
-    memset(wqv, 0, sizeof(*wqv));
     INIT_LIST_HEAD(&wqv->list);
     wqv->vcpu = v;
 
--- a/xen/common/xenoprof.c
+++ b/xen/common/xenoprof.c
@@ -193,17 +193,14 @@ static int alloc_xenoprof_struct(
     unsigned max_max_samples;
     int i;
 
-    d->xenoprof = xmalloc(struct xenoprof);
-
+    d->xenoprof = xzalloc(struct xenoprof);
     if ( d->xenoprof == NULL )
     {
         printk("alloc_xenoprof_struct(): memory allocation failed\n");
         return -ENOMEM;
     }
 
-    memset(d->xenoprof, 0, sizeof(*d->xenoprof));
-
-    d->xenoprof->vcpu = xmalloc_array(struct xenoprof_vcpu, d->max_vcpus);
+    d->xenoprof->vcpu = xzalloc_array(struct xenoprof_vcpu, d->max_vcpus);
     if ( d->xenoprof->vcpu == NULL )
     {
         xfree(d->xenoprof);
@@ -212,8 +209,6 @@ static int alloc_xenoprof_struct(
         return -ENOMEM;
     }
 
-    memset(d->xenoprof->vcpu, 0, d->max_vcpus * sizeof(*d->xenoprof->vcpu));
-
     nvcpu = 0;
     for_each_vcpu ( d, v )
         nvcpu++;



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


 


Rackspace

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