Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9bbf28a1 authored by Patrick Caulfield's avatar Patrick Caulfield Committed by David S. Miller
Browse files

[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: default avatarPatrick Caulfield <patrick@tykepenguin.com>
Signed-off-by: default avatarSteven Whitehouse <steve@chygwyn.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent dc49c1f9
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -925,7 +925,12 @@ 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))
			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);