diff options
Diffstat (limited to 'net')
| -rw-r--r-- | net/ipv6/route.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index d1f3e19b06c7..7ff687020fa9 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
| @@ -240,7 +240,7 @@ static inline int rt6_need_strict(struct in6_addr *daddr) | |||
| 240 | static inline struct rt6_info *rt6_device_match(struct net *net, | 240 | static inline struct rt6_info *rt6_device_match(struct net *net, |
| 241 | struct rt6_info *rt, | 241 | struct rt6_info *rt, |
| 242 | int oif, | 242 | int oif, |
| 243 | int strict) | 243 | int flags) |
| 244 | { | 244 | { |
| 245 | struct rt6_info *local = NULL; | 245 | struct rt6_info *local = NULL; |
| 246 | struct rt6_info *sprt; | 246 | struct rt6_info *sprt; |
| @@ -253,7 +253,7 @@ static inline struct rt6_info *rt6_device_match(struct net *net, | |||
| 253 | if (dev->flags & IFF_LOOPBACK) { | 253 | if (dev->flags & IFF_LOOPBACK) { |
| 254 | if (sprt->rt6i_idev == NULL || | 254 | if (sprt->rt6i_idev == NULL || |
| 255 | sprt->rt6i_idev->dev->ifindex != oif) { | 255 | sprt->rt6i_idev->dev->ifindex != oif) { |
| 256 | if (strict && oif) | 256 | if (flags & RT6_LOOKUP_F_IFACE && oif) |
| 257 | continue; | 257 | continue; |
| 258 | if (local && (!oif || | 258 | if (local && (!oif || |
| 259 | local->rt6i_idev->dev->ifindex == oif)) | 259 | local->rt6i_idev->dev->ifindex == oif)) |
| @@ -266,7 +266,7 @@ static inline struct rt6_info *rt6_device_match(struct net *net, | |||
| 266 | if (local) | 266 | if (local) |
| 267 | return local; | 267 | return local; |
| 268 | 268 | ||
| 269 | if (strict) | 269 | if (flags & RT6_LOOKUP_F_IFACE) |
| 270 | return net->ipv6.ip6_null_entry; | 270 | return net->ipv6.ip6_null_entry; |
| 271 | } | 271 | } |
| 272 | return rt; | 272 | return rt; |
