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

Commit 5e5f3f0f authored by YOSHIFUJI Hideaki's avatar YOSHIFUJI Hideaki
Browse files

[IPV6] ADDRCONF: Convert ipv6_get_saddr() to ipv6_dev_get_saddr().



Since most users of ipv6_get_saddr() pass non-NULL as
dst argument, use ipv6_dev_get_saddr() directly.

Signed-off-by: default avatarYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
parent 8082c37c
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -73,9 +73,6 @@ extern struct inet6_ifaddr *ipv6_get_ifaddr(struct net *net,
						 struct net_device *dev,
						 int strict);

extern int			ipv6_get_saddr(struct dst_entry *dst, 
					       struct in6_addr *daddr,
					       struct in6_addr *saddr);
extern int			ipv6_dev_get_saddr(struct net_device *dev, 
					       struct in6_addr *daddr,
					       struct in6_addr *saddr);
+1 −8
Original line number Diff line number Diff line
@@ -1167,14 +1167,7 @@ record_it:
	return 0;
}


int ipv6_get_saddr(struct dst_entry *dst,
		   struct in6_addr *daddr, struct in6_addr *saddr)
{
	return ipv6_dev_get_saddr(dst ? ip6_dst_idev(dst)->dev : NULL, daddr, saddr);
}

EXPORT_SYMBOL(ipv6_get_saddr);
EXPORT_SYMBOL(ipv6_dev_get_saddr);

int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr,
		    unsigned char banned_flags)
+2 −2
Original line number Diff line number Diff line
@@ -85,8 +85,8 @@ static int fib6_rule_action(struct fib_rule *rule, struct flowi *flp,
		if ((rule->flags & FIB_RULE_FIND_SADDR) &&
		    r->src.plen && !(flags & RT6_LOOKUP_F_HAS_SADDR)) {
			struct in6_addr saddr;
			if (ipv6_get_saddr(&rt->u.dst, &flp->fl6_dst,
					   &saddr))
			if (ipv6_dev_get_saddr(ip6_dst_idev(&rt->u.dst)->dev,
					       &flp->fl6_dst, &saddr))
				goto again;
			if (!ipv6_prefix_equal(&saddr, &r->src.addr,
					       r->src.plen))
+2 −1
Original line number Diff line number Diff line
@@ -919,7 +919,8 @@ static int ip6_dst_lookup_tail(struct sock *sk,
		goto out_err_release;

	if (ipv6_addr_any(&fl->fl6_src)) {
		err = ipv6_get_saddr(*dst, &fl->fl6_dst, &fl->fl6_src);
		err = ipv6_dev_get_saddr(ip6_dst_idev(*dst)->dev,
					 &fl->fl6_dst, &fl->fl6_src);
		if (err)
			goto out_err_release;
	}
+2 −1
Original line number Diff line number Diff line
@@ -2122,7 +2122,8 @@ static int rt6_fill_node(struct sk_buff *skb, struct rt6_info *rt,
		NLA_PUT_U32(skb, RTA_IIF, iif);
	else if (dst) {
		struct in6_addr saddr_buf;
		if (ipv6_get_saddr(&rt->u.dst, dst, &saddr_buf) == 0)
		if (ipv6_dev_get_saddr(ip6_dst_idev(&rt->u.dst)->dev,
				       dst, &saddr_buf) == 0)
			NLA_PUT(skb, RTA_PREFSRC, 16, &saddr_buf);
	}

Loading