Magellan Linux

Contents of /trunk/kernel-magellan/patches-3.17/0105-3.17.6-all-fixes.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2536 - (show annotations) (download)
Fri Jan 30 10:05:33 2015 UTC (9 years, 3 months ago) by niro
File size: 1623 byte(s)
-linux-3.17.6
1 diff --git a/Makefile b/Makefile
2 index 42585f6a819a..bb43e9e6a79c 100644
3 --- a/Makefile
4 +++ b/Makefile
5 @@ -1,6 +1,6 @@
6 VERSION = 3
7 PATCHLEVEL = 17
8 -SUBLEVEL = 5
9 +SUBLEVEL = 6
10 EXTRAVERSION =
11 NAME = Shuffling Zombie Juror
12
13 diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
14 index ec94ba94079f..de88c4ab5146 100644
15 --- a/net/netfilter/nf_conntrack_core.c
16 +++ b/net/netfilter/nf_conntrack_core.c
17 @@ -611,16 +611,12 @@ __nf_conntrack_confirm(struct sk_buff *skb)
18 */
19 NF_CT_ASSERT(!nf_ct_is_confirmed(ct));
20 pr_debug("Confirming conntrack %p\n", ct);
21 -
22 - /* We have to check the DYING flag after unlink to prevent
23 - * a race against nf_ct_get_next_corpse() possibly called from
24 - * user context, else we insert an already 'dead' hash, blocking
25 - * further use of that particular connection -JM.
26 - */
27 - nf_ct_del_from_dying_or_unconfirmed_list(ct);
28 + /* We have to check the DYING flag inside the lock to prevent
29 + a race against nf_ct_get_next_corpse() possibly called from
30 + user context, else we insert an already 'dead' hash, blocking
31 + further use of that particular connection -JM */
32
33 if (unlikely(nf_ct_is_dying(ct))) {
34 - nf_ct_add_to_dying_list(ct);
35 nf_conntrack_double_unlock(hash, reply_hash);
36 local_bh_enable();
37 return NF_ACCEPT;
38 @@ -640,6 +636,8 @@ __nf_conntrack_confirm(struct sk_buff *skb)
39 zone == nf_ct_zone(nf_ct_tuplehash_to_ctrack(h)))
40 goto out;
41
42 + nf_ct_del_from_dying_or_unconfirmed_list(ct);
43 +
44 /* Timer relative to confirmation time, not original
45 setting time, otherwise we'd get timer wrap in
46 weird delay cases. */