aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/pending-3.18/080-00-fib_trie-Fix-proc-net-fib_trie-when-CONFIG_IP_MULTIP.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/pending-3.18/080-00-fib_trie-Fix-proc-net-fib_trie-when-CONFIG_IP_MULTIP.patch')
-rw-r--r--target/linux/generic/pending-3.18/080-00-fib_trie-Fix-proc-net-fib_trie-when-CONFIG_IP_MULTIP.patch46
1 files changed, 0 insertions, 46 deletions
diff --git a/target/linux/generic/pending-3.18/080-00-fib_trie-Fix-proc-net-fib_trie-when-CONFIG_IP_MULTIP.patch b/target/linux/generic/pending-3.18/080-00-fib_trie-Fix-proc-net-fib_trie-when-CONFIG_IP_MULTIP.patch
deleted file mode 100644
index 5d99367ad4..0000000000
--- a/target/linux/generic/pending-3.18/080-00-fib_trie-Fix-proc-net-fib_trie-when-CONFIG_IP_MULTIP.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From: Alexander Duyck <alexander.h.duyck@redhat.com>
-Date: Tue, 2 Dec 2014 10:58:21 -0800
-Subject: [PATCH] fib_trie: Fix /proc/net/fib_trie when
- CONFIG_IP_MULTIPLE_TABLES is not defined
-
-In recent testing I had disabled CONFIG_IP_MULTIPLE_TABLES and as a result
-when I ran "cat /proc/net/fib_trie" the main trie was displayed multiple
-times. I found that the problem line of code was in the function
-fib_trie_seq_next. Specifically the line below caused the indexes to go in
-the opposite direction of our traversal:
-
- h = tb->tb_id & (FIB_TABLE_HASHSZ - 1);
-
-This issue was that the RT tables are defined such that RT_TABLE_LOCAL is ID
-255, while it is located at TABLE_LOCAL_INDEX of 0, and RT_TABLE_MAIN is 254
-with a TABLE_MAIN_INDEX of 1. This means that the above line will return 1
-for the local table and 0 for main. The result is that fib_trie_seq_next
-will return NULL at the end of the local table, fib_trie_seq_start will
-return the start of the main table, and then fib_trie_seq_next will loop on
-main forever as h will always return 0.
-
-The fix for this is to reverse the ordering of the two tables. It has the
-advantage of making it so that the tables now print in the same order
-regardless of if multiple tables are enabled or not. In order to make the
-definition consistent with the multiple tables case I simply masked the to
-RT_TABLE_XXX values by (FIB_TABLE_HASHSZ - 1). This way the two table
-layouts should always stay consistent.
-
-Fixes: 93456b6 ("[IPV4]: Unify access to the routing tables")
-Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
-
---- a/include/net/ip_fib.h
-+++ b/include/net/ip_fib.h
-@@ -201,8 +201,8 @@ void fib_free_table(struct fib_table *tb
-
- #ifndef CONFIG_IP_MULTIPLE_TABLES
-
--#define TABLE_LOCAL_INDEX 0
--#define TABLE_MAIN_INDEX 1
-+#define TABLE_LOCAL_INDEX (RT_TABLE_LOCAL & (FIB_TABLE_HASHSZ - 1))
-+#define TABLE_MAIN_INDEX (RT_TABLE_MAIN & (FIB_TABLE_HASHSZ - 1))
-
- static inline struct fib_table *fib_get_table(struct net *net, u32 id)
- {