diff options
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ipmr.c | 6 | ||||
-rw-r--r-- | net/ipv4/ipvs/ip_vs_conn.c | 3 | ||||
-rw-r--r-- | net/ipv4/netfilter/ip_conntrack_core.c | 3 |
3 files changed, 4 insertions, 8 deletions
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index ecb5422ea237..d7e1e60f51d5 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c | |||
@@ -479,20 +479,18 @@ static struct mfc_cache *ipmr_cache_find(__be32 origin, __be32 mcastgrp) | |||
479 | */ | 479 | */ |
480 | static struct mfc_cache *ipmr_cache_alloc(void) | 480 | static struct mfc_cache *ipmr_cache_alloc(void) |
481 | { | 481 | { |
482 | struct mfc_cache *c=kmem_cache_alloc(mrt_cachep, GFP_KERNEL); | 482 | struct mfc_cache *c=kmem_cache_zalloc(mrt_cachep, GFP_KERNEL); |
483 | if(c==NULL) | 483 | if(c==NULL) |
484 | return NULL; | 484 | return NULL; |
485 | memset(c, 0, sizeof(*c)); | ||
486 | c->mfc_un.res.minvif = MAXVIFS; | 485 | c->mfc_un.res.minvif = MAXVIFS; |
487 | return c; | 486 | return c; |
488 | } | 487 | } |
489 | 488 | ||
490 | static struct mfc_cache *ipmr_cache_alloc_unres(void) | 489 | static struct mfc_cache *ipmr_cache_alloc_unres(void) |
491 | { | 490 | { |
492 | struct mfc_cache *c=kmem_cache_alloc(mrt_cachep, GFP_ATOMIC); | 491 | struct mfc_cache *c=kmem_cache_zalloc(mrt_cachep, GFP_ATOMIC); |
493 | if(c==NULL) | 492 | if(c==NULL) |
494 | return NULL; | 493 | return NULL; |
495 | memset(c, 0, sizeof(*c)); | ||
496 | skb_queue_head_init(&c->mfc_un.unres.unresolved); | 494 | skb_queue_head_init(&c->mfc_un.unres.unresolved); |
497 | c->mfc_un.unres.expires = jiffies + 10*HZ; | 495 | c->mfc_un.unres.expires = jiffies + 10*HZ; |
498 | return c; | 496 | return c; |
diff --git a/net/ipv4/ipvs/ip_vs_conn.c b/net/ipv4/ipvs/ip_vs_conn.c index 8086787a2c51..3aec4ac66e3c 100644 --- a/net/ipv4/ipvs/ip_vs_conn.c +++ b/net/ipv4/ipvs/ip_vs_conn.c | |||
@@ -603,13 +603,12 @@ ip_vs_conn_new(int proto, __be32 caddr, __be16 cport, __be32 vaddr, __be16 vport | |||
603 | struct ip_vs_conn *cp; | 603 | struct ip_vs_conn *cp; |
604 | struct ip_vs_protocol *pp = ip_vs_proto_get(proto); | 604 | struct ip_vs_protocol *pp = ip_vs_proto_get(proto); |
605 | 605 | ||
606 | cp = kmem_cache_alloc(ip_vs_conn_cachep, GFP_ATOMIC); | 606 | cp = kmem_cache_zalloc(ip_vs_conn_cachep, GFP_ATOMIC); |
607 | if (cp == NULL) { | 607 | if (cp == NULL) { |
608 | IP_VS_ERR_RL("ip_vs_conn_new: no memory available.\n"); | 608 | IP_VS_ERR_RL("ip_vs_conn_new: no memory available.\n"); |
609 | return NULL; | 609 | return NULL; |
610 | } | 610 | } |
611 | 611 | ||
612 | memset(cp, 0, sizeof(*cp)); | ||
613 | INIT_LIST_HEAD(&cp->c_list); | 612 | INIT_LIST_HEAD(&cp->c_list); |
614 | init_timer(&cp->timer); | 613 | init_timer(&cp->timer); |
615 | cp->timer.data = (unsigned long)cp; | 614 | cp->timer.data = (unsigned long)cp; |
diff --git a/net/ipv4/netfilter/ip_conntrack_core.c b/net/ipv4/netfilter/ip_conntrack_core.c index 8556a4f4f60a..62be2eb37698 100644 --- a/net/ipv4/netfilter/ip_conntrack_core.c +++ b/net/ipv4/netfilter/ip_conntrack_core.c | |||
@@ -638,14 +638,13 @@ struct ip_conntrack *ip_conntrack_alloc(struct ip_conntrack_tuple *orig, | |||
638 | } | 638 | } |
639 | } | 639 | } |
640 | 640 | ||
641 | conntrack = kmem_cache_alloc(ip_conntrack_cachep, GFP_ATOMIC); | 641 | conntrack = kmem_cache_zalloc(ip_conntrack_cachep, GFP_ATOMIC); |
642 | if (!conntrack) { | 642 | if (!conntrack) { |
643 | DEBUGP("Can't allocate conntrack.\n"); | 643 | DEBUGP("Can't allocate conntrack.\n"); |
644 | atomic_dec(&ip_conntrack_count); | 644 | atomic_dec(&ip_conntrack_count); |
645 | return ERR_PTR(-ENOMEM); | 645 | return ERR_PTR(-ENOMEM); |
646 | } | 646 | } |
647 | 647 | ||
648 | memset(conntrack, 0, sizeof(*conntrack)); | ||
649 | atomic_set(&conntrack->ct_general.use, 1); | 648 | atomic_set(&conntrack->ct_general.use, 1); |
650 | conntrack->ct_general.destroy = destroy_conntrack; | 649 | conntrack->ct_general.destroy = destroy_conntrack; |
651 | conntrack->tuplehash[IP_CT_DIR_ORIGINAL].tuple = *orig; | 650 | conntrack->tuplehash[IP_CT_DIR_ORIGINAL].tuple = *orig; |