diff options
Diffstat (limited to 'net/ipv4/fib_semantics.c')
-rw-r--r-- | net/ipv4/fib_semantics.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c index 97cc49412684..a13c84763d4c 100644 --- a/net/ipv4/fib_semantics.c +++ b/net/ipv4/fib_semantics.c | |||
@@ -229,6 +229,8 @@ static struct fib_info *fib_find_info(const struct fib_info *nfi) | |||
229 | head = &fib_info_hash[hash]; | 229 | head = &fib_info_hash[hash]; |
230 | 230 | ||
231 | hlist_for_each_entry(fi, node, head, fib_hash) { | 231 | hlist_for_each_entry(fi, node, head, fib_hash) { |
232 | if (fi->fib_net != nfi->fib_net) | ||
233 | continue; | ||
232 | if (fi->fib_nhs != nfi->fib_nhs) | 234 | if (fi->fib_nhs != nfi->fib_nhs) |
233 | continue; | 235 | continue; |
234 | if (nfi->fib_protocol == fi->fib_protocol && | 236 | if (nfi->fib_protocol == fi->fib_protocol && |
@@ -1031,7 +1033,7 @@ nla_put_failure: | |||
1031 | referring to it. | 1033 | referring to it. |
1032 | - device went down -> we must shutdown all nexthops going via it. | 1034 | - device went down -> we must shutdown all nexthops going via it. |
1033 | */ | 1035 | */ |
1034 | int fib_sync_down_addr(__be32 local) | 1036 | int fib_sync_down_addr(struct net *net, __be32 local) |
1035 | { | 1037 | { |
1036 | int ret = 0; | 1038 | int ret = 0; |
1037 | unsigned int hash = fib_laddr_hashfn(local); | 1039 | unsigned int hash = fib_laddr_hashfn(local); |
@@ -1043,6 +1045,8 @@ int fib_sync_down_addr(__be32 local) | |||
1043 | return 0; | 1045 | return 0; |
1044 | 1046 | ||
1045 | hlist_for_each_entry(fi, node, head, fib_lhash) { | 1047 | hlist_for_each_entry(fi, node, head, fib_lhash) { |
1048 | if (fi->fib_net != net) | ||
1049 | continue; | ||
1046 | if (fi->fib_prefsrc == local) { | 1050 | if (fi->fib_prefsrc == local) { |
1047 | fi->fib_flags |= RTNH_F_DEAD; | 1051 | fi->fib_flags |= RTNH_F_DEAD; |
1048 | ret++; | 1052 | ret++; |