From: Andrew Morton <akpm@osdl.org>
To: "Paolo 'Blaisorblade' Giarrusso" <blaisorblade@yahoo.it>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] kzalloc: use in alloc_netdev
Date: Thu, 6 Apr 2006 22:52:32 -0700 [thread overview]
Message-ID: <20060406225232.660e8251.akpm@osdl.org> (raw)
In-Reply-To: <20060407053204.11316.44763.stgit@zion.home.lan>
"Paolo 'Blaisorblade' Giarrusso" <blaisorblade@yahoo.it> wrote:
>
> Noticed this use, fixed it.
OK, but I think that if we're going to make conversions like this it's best
to do it in decent-sized chunks, just to keep the patch volume down.
umm,
net/core/dev.c | 3 +--
net/core/dv.c | 5 +----
net/core/flow.c | 4 +---
net/core/gen_estimator.c | 3 +--
net/core/neighbour.c | 14 ++++----------
net/core/request_sock.c | 4 +---
6 files changed, 9 insertions(+), 24 deletions(-)
diff -puN net/core/dev.c~net-kzalloc-conversion net/core/dev.c
--- devel/net/core/dev.c~net-kzalloc-conversion 2006-04-06 22:50:24.000000000 -0700
+++ devel-akpm/net/core/dev.c 2006-04-06 22:50:24.000000000 -0700
@@ -3100,12 +3100,11 @@ struct net_device *alloc_netdev(int size
alloc_size = (sizeof(*dev) + NETDEV_ALIGN_CONST) & ~NETDEV_ALIGN_CONST;
alloc_size += sizeof_priv + NETDEV_ALIGN_CONST;
- p = kmalloc(alloc_size, GFP_KERNEL);
+ p = kzalloc(alloc_size, GFP_KERNEL);
if (!p) {
printk(KERN_ERR "alloc_dev: Unable to allocate device.\n");
return NULL;
}
- memset(p, 0, alloc_size);
dev = (struct net_device *)
(((long)p + NETDEV_ALIGN_CONST) & ~NETDEV_ALIGN_CONST);
diff -puN net/core/dv.c~net-kzalloc-conversion net/core/dv.c
--- devel/net/core/dv.c~net-kzalloc-conversion 2006-04-06 22:50:24.000000000 -0700
+++ devel-akpm/net/core/dv.c 2006-04-06 22:50:24.000000000 -0700
@@ -55,15 +55,12 @@ int alloc_divert_blk(struct net_device *
dev->divert = NULL;
if (dev->type == ARPHRD_ETHER) {
- dev->divert = (struct divert_blk *)
- kmalloc(alloc_size, GFP_KERNEL);
+ dev->divert = kzalloc(alloc_size, GFP_KERNEL);
if (dev->divert == NULL) {
printk(KERN_INFO "divert: unable to allocate divert_blk for %s\n",
dev->name);
return -ENOMEM;
}
-
- memset(dev->divert, 0, sizeof(struct divert_blk));
dev_hold(dev);
}
diff -puN net/core/flow.c~net-kzalloc-conversion net/core/flow.c
--- devel/net/core/flow.c~net-kzalloc-conversion 2006-04-06 22:50:24.000000000 -0700
+++ devel-akpm/net/core/flow.c 2006-04-06 22:50:24.000000000 -0700
@@ -318,12 +318,10 @@ static void __devinit flow_cache_cpu_pre
/* NOTHING */;
flow_table(cpu) = (struct flow_cache_entry **)
- __get_free_pages(GFP_KERNEL, order);
+ __get_free_pages(GFP_KERNEL|__GFP_ZERO, order);
if (!flow_table(cpu))
panic("NET: failed to allocate flow cache order %lu\n", order);
- memset(flow_table(cpu), 0, PAGE_SIZE << order);
-
flow_hash_rnd_recalc(cpu) = 1;
flow_count(cpu) = 0;
diff -puN net/core/gen_estimator.c~net-kzalloc-conversion net/core/gen_estimator.c
--- devel/net/core/gen_estimator.c~net-kzalloc-conversion 2006-04-06 22:50:24.000000000 -0700
+++ devel-akpm/net/core/gen_estimator.c 2006-04-06 22:50:24.000000000 -0700
@@ -159,11 +159,10 @@ int gen_new_estimator(struct gnet_stats_
if (parm->interval < -2 || parm->interval > 3)
return -EINVAL;
- est = kmalloc(sizeof(*est), GFP_KERNEL);
+ est = kzalloc(sizeof(*est), GFP_KERNEL);
if (est == NULL)
return -ENOBUFS;
- memset(est, 0, sizeof(*est));
est->interval = parm->interval + 2;
est->bstats = bstats;
est->rate_est = rate_est;
diff -puN net/core/neighbour.c~net-kzalloc-conversion net/core/neighbour.c
--- devel/net/core/neighbour.c~net-kzalloc-conversion 2006-04-06 22:50:24.000000000 -0700
+++ devel-akpm/net/core/neighbour.c 2006-04-06 22:50:24.000000000 -0700
@@ -284,14 +284,11 @@ static struct neighbour **neigh_hash_all
struct neighbour **ret;
if (size <= PAGE_SIZE) {
- ret = kmalloc(size, GFP_ATOMIC);
+ ret = kzalloc(size, GFP_ATOMIC);
} else {
ret = (struct neighbour **)
- __get_free_pages(GFP_ATOMIC, get_order(size));
+ __get_free_pages(GFP_ATOMIC|__GFP_ZERO, get_order(size));
}
- if (ret)
- memset(ret, 0, size);
-
return ret;
}
@@ -1089,8 +1086,7 @@ static void neigh_hh_init(struct neighbo
if (hh->hh_type == protocol)
break;
- if (!hh && (hh = kmalloc(sizeof(*hh), GFP_ATOMIC)) != NULL) {
- memset(hh, 0, sizeof(struct hh_cache));
+ if (!hh && (hh = kzalloc(sizeof(*hh), GFP_ATOMIC)) != NULL) {
rwlock_init(&hh->hh_lock);
hh->hh_type = protocol;
atomic_set(&hh->hh_refcnt, 0);
@@ -1366,13 +1362,11 @@ void neigh_table_init(struct neigh_table
tbl->hash_buckets = neigh_hash_alloc(tbl->hash_mask + 1);
phsize = (PNEIGH_HASHMASK + 1) * sizeof(struct pneigh_entry *);
- tbl->phash_buckets = kmalloc(phsize, GFP_KERNEL);
+ tbl->phash_buckets = kzalloc(phsize, GFP_KERNEL);
if (!tbl->hash_buckets || !tbl->phash_buckets)
panic("cannot allocate neighbour cache hashes");
- memset(tbl->phash_buckets, 0, phsize);
-
get_random_bytes(&tbl->hash_rnd, sizeof(tbl->hash_rnd));
rwlock_init(&tbl->lock);
diff -puN net/core/request_sock.c~net-kzalloc-conversion net/core/request_sock.c
--- devel/net/core/request_sock.c~net-kzalloc-conversion 2006-04-06 22:50:24.000000000 -0700
+++ devel-akpm/net/core/request_sock.c 2006-04-06 22:50:24.000000000 -0700
@@ -38,13 +38,11 @@ int reqsk_queue_alloc(struct request_soc
{
const int lopt_size = sizeof(struct listen_sock) +
nr_table_entries * sizeof(struct request_sock *);
- struct listen_sock *lopt = kmalloc(lopt_size, GFP_KERNEL);
+ struct listen_sock *lopt = kzalloc(lopt_size, GFP_KERNEL);
if (lopt == NULL)
return -ENOMEM;
- memset(lopt, 0, lopt_size);
-
for (lopt->max_qlen_log = 6;
(1 << lopt->max_qlen_log) < sysctl_max_syn_backlog;
lopt->max_qlen_log++);
_
next prev parent reply other threads:[~2006-04-07 5:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-07 5:32 [PATCH] kzalloc: use in alloc_netdev Paolo 'Blaisorblade' Giarrusso
2006-04-07 5:38 ` David S. Miller
2006-04-07 5:52 ` Andrew Morton [this message]
2006-04-07 21:53 ` David S. Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060406225232.660e8251.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=blaisorblade@yahoo.it \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.