Thread (8 messages) flat view 8 messages, 3 authors, 2012-01-26

Re: [BISECTED] Linux 3.2: Networking out of LAN does not work

From: Rune Magnussen <hidden>
Date: 2012-01-26 07:14:59

Eric Dumazet [off-list ref] 
Sendt af: netdev-owner@vger.kernel.org
25-01-2012 12:06
58efa841-5316-9749-1633-85629e363385

Til
Rune Magnussen [off-list ref], David Miller [off-list ref]
cc
netdev@vger.kernel.org, Mihai Maruseac [off-list ref]
Emne
Re: [BISECTED] Linux 3.2: Networking out of LAN does not work






OK please test the following patch.
[PATCH] net: use index hash for /proc/net/dev
Commit f04565ddf52e (dev: use name hash for dev_seq_ops) added a
regression for legacy apps expecting to find devices in a particular
order.
Instead of using name hash, we can use dev_index_head hash, based on
device index, to not change device ordering.
Name hash order is not particularly useful, while index ordering is
meaningful on machines where no more than 256 devices are ever created.
"cat /proc/net/dev" and "ip link" will output devices in same order.
quoted hunk ↗ jump to hunk
Reported-by: Rune Magnussen <redacted>
Bisected-by: Rune Magnussen [off-list ref]
Cc: Mihai Maruseac <redacted>
Signed-off-by: Eric Dumazet <redacted>
---
net/core/dev.c |    4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index 115dee1..c58dba3 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4052,9 +4052,9 @@ static inline struct net_device 
*dev_from_same_bucket(struct seq_file *seq)
               bucket = get_bucket(state->pos);
               offset = get_offset(state->pos);
-              h = &net->dev_name_head[bucket];
+              h = dev_index_hash(net, bucket);
               count = 0;
-              hlist_for_each_entry_rcu(dev, p, h, name_hlist) {
+              hlist_for_each_entry_rcu(dev, p, h, index_hlist) {
                               if (count++ == offset) {
                                               state->pos = 
set_bucket_offset(bucket, count);
                                               return dev;
The patch works for me. I applied it on top of v3.2.1 and it fixed my 
problem.
I have not tested it on other computers yet.

Greetings Rune
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help