[DECNET]: Fix for routing bug
This patch fixes a bug in the DECnet routing code where we were selecting a loopback device in preference to an outward facing device even when the destination was known non-local. This patch should fix the problem. Signed-off-by: Patrick Caulfield <patrick@tykepenguin.com> Signed-off-by: Steven Whitehouse <steve@chygwyn.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
dc49c1f94e
commit
9bbf28a1ff
@ -925,8 +925,13 @@ static int dn_route_output_slow(struct dst_entry **pprt, const struct flowi *old
|
||||
for(dev_out = dev_base; dev_out; dev_out = dev_out->next) {
|
||||
if (!dev_out->dn_ptr)
|
||||
continue;
|
||||
if (dn_dev_islocal(dev_out, oldflp->fld_src))
|
||||
break;
|
||||
if (!dn_dev_islocal(dev_out, oldflp->fld_src))
|
||||
continue;
|
||||
if ((dev_out->flags & IFF_LOOPBACK) &&
|
||||
oldflp->fld_dst &&
|
||||
!dn_dev_islocal(dev_out, oldflp->fld_dst))
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
read_unlock(&dev_base_lock);
|
||||
if (dev_out == NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user