diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-03-18 18:21:08 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-03-18 18:21:08 +0000 |
commit | 17afb853eec6dc4f39f0815831379be004f98cc5 (patch) | |
tree | 5feb5a032288f0a36cc3890d258bcfb95b2f1ad3 /target/linux/generic/patches-3.18/080-20-fib_trie-Fix-RCU-bug-and-merge-similar-bits-of-infla.patch | |
parent | 87568ebeacd733d211da5dcce8d82df4aa872b84 (diff) | |
download | upstream-17afb853eec6dc4f39f0815831379be004f98cc5.tar.gz upstream-17afb853eec6dc4f39f0815831379be004f98cc5.tar.bz2 upstream-17afb853eec6dc4f39f0815831379be004f98cc5.zip |
kernel: bump to 3.14.35, 3.18.9, 3.19.1 and 4.0-rc4
also refresh generic patches for 3.14, 3.18, 3.19 and 4.0
targets might need a minor refresh as well, however, it looks
like everything still applies cleanly with occasional small
offsets.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
SVN-Revision: 44876
Diffstat (limited to 'target/linux/generic/patches-3.18/080-20-fib_trie-Fix-RCU-bug-and-merge-similar-bits-of-infla.patch')
-rw-r--r-- | target/linux/generic/patches-3.18/080-20-fib_trie-Fix-RCU-bug-and-merge-similar-bits-of-infla.patch | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/target/linux/generic/patches-3.18/080-20-fib_trie-Fix-RCU-bug-and-merge-similar-bits-of-infla.patch b/target/linux/generic/patches-3.18/080-20-fib_trie-Fix-RCU-bug-and-merge-similar-bits-of-infla.patch index be837526a4..7e26127084 100644 --- a/target/linux/generic/patches-3.18/080-20-fib_trie-Fix-RCU-bug-and-merge-similar-bits-of-infla.patch +++ b/target/linux/generic/patches-3.18/080-20-fib_trie-Fix-RCU-bug-and-merge-similar-bits-of-infla.patch @@ -29,7 +29,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c -@@ -396,8 +396,30 @@ static void put_child(struct tnode *tn, +@@ -396,8 +396,30 @@ static void put_child(struct tnode *tn, rcu_assign_pointer(tn->child[i], n); } @@ -150,7 +150,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net> - tp = node_parent(oldtnode); - NODE_INIT_PARENT(tn, tp); - put_child_root(tp, t, tn->key, tn); -- ++ /* setup the parent pointers into and out of this node */ ++ replace(t, oldtnode, tn); + - /* prepare oldtnode to be freed */ - tnode_free_init(oldtnode); - @@ -170,9 +172,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> - /* fetch new nodes */ - node1 = tnode_get_child(tn, 2 * i + 1); - node0 = tnode_get_child(tn, 2 * i); -+ /* setup the parent pointers into and out of this node */ -+ replace(t, oldtnode, tn); - +- - /* bits == 1 then node0 and node1 represent inode's children */ - if (inode->bits == 1) { - node_set_parent(node1, tn); @@ -207,7 +207,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> unsigned long i; pr_debug("In halve\n"); -@@ -577,14 +588,18 @@ static int halve(struct trie *t, struct +@@ -577,14 +588,18 @@ static int halve(struct trie *t, struct if (!tn) return -ENOMEM; @@ -228,7 +228,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* At least one of the children is empty */ if (!node1 || !node0) { -@@ -609,34 +624,8 @@ static int halve(struct trie *t, struct +@@ -609,34 +624,8 @@ static int halve(struct trie *t, struct put_child(tn, i / 2, inode); } |