diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2008-08-19 00:31:24 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-08-19 00:31:24 -0400 |
commit | cb1cb5c47457ff2b604dac2da44cab4d39d11459 (patch) | |
tree | 3bd23533d093a73d69c748c97486b292786fbc57 /net | |
parent | 1575e7ea018fec992b94a12a1a491ce693ae9eac (diff) |
netfilter: ctnetlink: fix sleep in read-side lock section
Fix allocation with GFP_KERNEL in ctnetlink_create_conntrack() under
read-side lock sections.
This problem was introduced in 2.6.25.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/netfilter/nf_conntrack_netlink.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c index d1fb2f8555e..a5b95ccb3ce 100644 --- a/net/netfilter/nf_conntrack_netlink.c +++ b/net/netfilter/nf_conntrack_netlink.c | |||
@@ -1139,7 +1139,7 @@ ctnetlink_create_conntrack(struct nlattr *cda[], | |||
1139 | rcu_read_lock(); | 1139 | rcu_read_lock(); |
1140 | helper = __nf_ct_helper_find(rtuple); | 1140 | helper = __nf_ct_helper_find(rtuple); |
1141 | if (helper) { | 1141 | if (helper) { |
1142 | help = nf_ct_helper_ext_add(ct, GFP_KERNEL); | 1142 | help = nf_ct_helper_ext_add(ct, GFP_ATOMIC); |
1143 | if (help == NULL) { | 1143 | if (help == NULL) { |
1144 | rcu_read_unlock(); | 1144 | rcu_read_unlock(); |
1145 | err = -ENOMEM; | 1145 | err = -ENOMEM; |