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 | ||
