diff options
| author | David S. Miller <davem@sunset.davemloft.net> | 2007-04-06 14:42:27 -0400 |
|---|---|---|
| committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-06 14:42:27 -0400 |
| commit | 161980f4c6b846625efe6227420175cb41477de3 (patch) | |
| tree | 689e343519191d02624b377c7d2fccb2a76852cf | |
| parent | 254d0d24e31c3df64ccfff349c9aa9d1e5989819 (diff) | |
[IPV6]: Revert recent change to rt6_check_dev().
This reverts a0d78ebf3a0e33a1aeacf2fc518ad9273d6a1c2f
It causes pings to link-local addresses to fail.
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | net/ipv6/route.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 3931b33b25e8..ad9b285692ba 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
| @@ -311,21 +311,12 @@ static inline void rt6_probe(struct rt6_info *rt) | |||
| 311 | static inline int rt6_check_dev(struct rt6_info *rt, int oif) | 311 | static inline int rt6_check_dev(struct rt6_info *rt, int oif) |
| 312 | { | 312 | { |
| 313 | struct net_device *dev = rt->rt6i_dev; | 313 | struct net_device *dev = rt->rt6i_dev; |
| 314 | int ret = 0; | 314 | if (!oif || dev->ifindex == oif) |
| 315 | |||
| 316 | if (!oif) | ||
| 317 | return 2; | ||
| 318 | if (dev->flags & IFF_LOOPBACK) { | ||
| 319 | if (!WARN_ON(rt->rt6i_idev == NULL) && | ||
| 320 | rt->rt6i_idev->dev->ifindex == oif) | ||
| 321 | ret = 1; | ||
| 322 | else | ||
| 323 | return 0; | ||
| 324 | } | ||
| 325 | if (dev->ifindex == oif) | ||
| 326 | return 2; | 315 | return 2; |
| 327 | 316 | if ((dev->flags & IFF_LOOPBACK) && | |
| 328 | return ret; | 317 | rt->rt6i_idev && rt->rt6i_idev->dev->ifindex == oif) |
| 318 | return 1; | ||
| 319 | return 0; | ||
| 329 | } | 320 | } |
| 330 | 321 | ||
| 331 | static inline int rt6_check_neigh(struct rt6_info *rt) | 322 | static inline int rt6_check_neigh(struct rt6_info *rt) |
