| From 4b9e2ebe8b615d54362486c407aa27f85d9db699 Mon Sep 17 00:00:00 2001 |
| From: Eric Dumazet <eric.dumazet@gmail.com> |
| Date: Thu, 28 Oct 2010 12:34:21 +0200 |
| Subject: [PATCH] netfilter: nf_conntrack: allow nf_ct_alloc_hashtable() to |
| get highmem pages |
| |
| commit 6b1686a71e3158d3c5f125260effce171cc7852b upstream. |
| |
| commit ea781f197d6a8 (use SLAB_DESTROY_BY_RCU and get rid of call_rcu()) |
| did a mistake in __vmalloc() call in nf_ct_alloc_hashtable(). |
| |
| I forgot to add __GFP_HIGHMEM, so pages were taken from LOWMEM only. |
| |
| Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> |
| Signed-off-by: Patrick McHardy <kaber@trash.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c |
| index 0c9bbe9..a1af890 100644 |
| --- a/net/netfilter/nf_conntrack_core.c |
| +++ b/net/netfilter/nf_conntrack_core.c |
| @@ -1240,7 +1240,8 @@ void *nf_ct_alloc_hashtable(unsigned int *sizep, int *vmalloced, int nulls) |
| if (!hash) { |
| *vmalloced = 1; |
| printk(KERN_WARNING "nf_conntrack: falling back to vmalloc.\n"); |
| - hash = __vmalloc(sz, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL); |
| + hash = __vmalloc(sz, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, |
| + PAGE_KERNEL); |
| } |
| |
| if (hash && nulls) |
| -- |
| 1.7.4.4 |
| |