diff options
-rw-r--r-- | net/xfrm/xfrm_hash.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/xfrm/xfrm_hash.c b/net/xfrm/xfrm_hash.c index 55ab5792af56..a2023ec52329 100644 --- a/net/xfrm/xfrm_hash.c +++ b/net/xfrm/xfrm_hash.c | |||
@@ -17,17 +17,14 @@ struct hlist_head *xfrm_hash_alloc(unsigned int sz) | |||
17 | struct hlist_head *n; | 17 | struct hlist_head *n; |
18 | 18 | ||
19 | if (sz <= PAGE_SIZE) | 19 | if (sz <= PAGE_SIZE) |
20 | n = kmalloc(sz, GFP_KERNEL); | 20 | n = kzalloc(sz, GFP_KERNEL); |
21 | else if (hashdist) | 21 | else if (hashdist) |
22 | n = __vmalloc(sz, GFP_KERNEL, PAGE_KERNEL); | 22 | n = __vmalloc(sz, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL); |
23 | else | 23 | else |
24 | n = (struct hlist_head *) | 24 | n = (struct hlist_head *) |
25 | __get_free_pages(GFP_KERNEL | __GFP_NOWARN, | 25 | __get_free_pages(GFP_KERNEL | __GFP_NOWARN | __GFP_ZERO, |
26 | get_order(sz)); | 26 | get_order(sz)); |
27 | 27 | ||
28 | if (n) | ||
29 | memset(n, 0, sz); | ||
30 | |||
31 | return n; | 28 | return n; |
32 | } | 29 | } |
33 | 30 | ||