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

Commit 8e1ed705 authored by David Ahern's avatar David Ahern Committed by David S. Miller
Browse files

net: Replace calls to vrf_dev_get_rth



Replace calls to vrf_dev_get_rth with l3mdev_get_rtable.
The check on the flow flags is handled in the l3mdev operation.

Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3236b004
Loading
Loading
Loading
Loading
+0 −22
Original line number Diff line number Diff line
@@ -32,26 +32,4 @@ struct net_vrf {
	u32			tb_id;
};


#if IS_ENABLED(CONFIG_NET_VRF)
/* caller has already checked netif_is_l3_master(dev) */
static inline struct rtable *vrf_dev_get_rth(const struct net_device *dev)
{
	struct rtable *rth = ERR_PTR(-ENETUNREACH);
	struct net_vrf *vrf = netdev_priv(dev);

	if (vrf) {
		rth = vrf->rth;
		atomic_inc(&rth->dst.__refcnt);
	}
	return rth;
}

#else
static inline struct rtable *vrf_dev_get_rth(const struct net_device *dev)
{
	return ERR_PTR(-ENETUNREACH);
}
#endif

#endif /* __LINUX_NET_VRF_H */
+3 −5
Original line number Diff line number Diff line
@@ -112,7 +112,6 @@
#endif
#include <net/secure_seq.h>
#include <net/ip_tunnels.h>
#include <net/vrf.h>
#include <net/l3mdev.h>

#define RT_FL_TOS(oldflp4) \
@@ -2125,12 +2124,11 @@ struct rtable *__ip_route_output_key(struct net *net, struct flowi4 *fl4)
				fl4->saddr = inet_select_addr(dev_out, 0,
							      RT_SCOPE_HOST);
		}
		if (netif_is_l3_master(dev_out) &&
		    !(fl4->flowi4_flags & FLOWI_FLAG_VRFSRC)) {
			rth = vrf_dev_get_rth(dev_out);

		rth = l3mdev_get_rtable(dev_out, fl4);
		if (rth)
			goto out;
	}
	}

	if (!fl4->daddr) {
		fl4->daddr = fl4->saddr;