xfrm: Fix xfrm_policy_gc_lock handling.
[linux-2.6.git] / net / xfrm / xfrm_hash.c
index 55ab579..a2023ec 100644 (file)
@@ -17,17 +17,14 @@ struct hlist_head *xfrm_hash_alloc(unsigned int sz)
        struct hlist_head *n;
 
        if (sz <= PAGE_SIZE)
-               n = kmalloc(sz, GFP_KERNEL);
+               n = kzalloc(sz, GFP_KERNEL);
        else if (hashdist)
-               n = __vmalloc(sz, GFP_KERNEL, PAGE_KERNEL);
+               n = __vmalloc(sz, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL);
        else
                n = (struct hlist_head *)
-                       __get_free_pages(GFP_KERNEL | __GFP_NOWARN,
+                       __get_free_pages(GFP_KERNEL | __GFP_NOWARN | __GFP_ZERO,
                                         get_order(sz));
 
-       if (n)
-               memset(n, 0, sz);
-
        return n;
 }