diff options
| -rw-r--r-- | net/decnet/dn_route.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/decnet/dn_route.c b/net/decnet/dn_route.c index 1355614ec11b..743e9fcf7c5a 100644 --- a/net/decnet/dn_route.c +++ b/net/decnet/dn_route.c | |||
| @@ -925,8 +925,13 @@ static int dn_route_output_slow(struct dst_entry **pprt, const struct flowi *old | |||
| 925 | for(dev_out = dev_base; dev_out; dev_out = dev_out->next) { | 925 | for(dev_out = dev_base; dev_out; dev_out = dev_out->next) { |
| 926 | if (!dev_out->dn_ptr) | 926 | if (!dev_out->dn_ptr) |
| 927 | continue; | 927 | continue; |
| 928 | if (dn_dev_islocal(dev_out, oldflp->fld_src)) | 928 | if (!dn_dev_islocal(dev_out, oldflp->fld_src)) |
| 929 | break; | 929 | continue; |
| 930 | if ((dev_out->flags & IFF_LOOPBACK) && | ||
| 931 | oldflp->fld_dst && | ||
| 932 | !dn_dev_islocal(dev_out, oldflp->fld_dst)) | ||
| 933 | continue; | ||
| 934 | break; | ||
| 930 | } | 935 | } |
| 931 | read_unlock(&dev_base_lock); | 936 | read_unlock(&dev_base_lock); |
| 932 | if (dev_out == NULL) | 937 | if (dev_out == NULL) |
