]> Pileus Git - ~andy/linux/commitdiff
[IPV4] fib_hash: kmalloc + memset conversion to kzalloc
authorJoonwoo Park <joonwpark81@gmail.com>
Mon, 26 Nov 2007 15:31:24 +0000 (23:31 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 22:55:07 +0000 (14:55 -0800)
fib_hash: kmalloc + memset conversion to kzalloc
fix to avoid memset entirely.

Signed-off-by: Joonwoo Park <joonwpark81@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/fib_hash.c

index 0dfee27cfbcd8c80364ddf2bace37e955b8b55d8..eb1aa8eead093fde920f93b884e3e30eb1180ae0 100644 (file)
@@ -102,10 +102,10 @@ static struct hlist_head *fz_hash_alloc(int divisor)
        unsigned long size = divisor * sizeof(struct hlist_head);
 
        if (size <= PAGE_SIZE) {
-               return kmalloc(size, GFP_KERNEL);
+               return kzalloc(size, GFP_KERNEL);
        } else {
                return (struct hlist_head *)
-                       __get_free_pages(GFP_KERNEL, get_order(size));
+                       __get_free_pages(GFP_KERNEL | __GFP_ZERO, get_order(size));
        }
 }
 
@@ -174,8 +174,6 @@ static void fn_rehash_zone(struct fn_zone *fz)
        ht = fz_hash_alloc(new_divisor);
 
        if (ht) {
-               memset(ht, 0, new_divisor * sizeof(struct hlist_head));
-
                write_lock_bh(&fib_hash_lock);
                old_ht = fz->fz_hash;
                fz->fz_hash = ht;
@@ -219,7 +217,6 @@ fn_new_zone(struct fn_hash *table, int z)
                kfree(fz);
                return NULL;
        }
-       memset(fz->fz_hash, 0, fz->fz_divisor * sizeof(struct hlist_head *));
        fz->fz_order = z;
        fz->fz_mask = inet_make_mask(z);