Skip to content

Commit

Permalink
[IPV6] ADDRCONF: Convert ipv6_get_saddr() to ipv6_dev_get_saddr().
Browse files Browse the repository at this point in the history
Since most users of ipv6_get_saddr() pass non-NULL as
dst argument, use ipv6_dev_get_saddr() directly.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
  • Loading branch information
yoshfuji committed Mar 4, 2008
1 parent 8082c37 commit 5e5f3f0
Show file tree
Hide file tree
Showing 7 changed files with 12 additions and 18 deletions.
3 changes: 0 additions & 3 deletions include/net/addrconf.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
9 changes: 1 addition & 8 deletions net/ipv6/addrconf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1167,14 +1167,7 @@ int ipv6_dev_get_saddr(struct net_device *daddr_dev,
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)
Expand Down
4 changes: 2 additions & 2 deletions net/ipv6/fib6_rules.c
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
3 changes: 2 additions & 1 deletion net/ipv6/ip6_output.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
3 changes: 2 additions & 1 deletion net/ipv6/route.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
5 changes: 3 additions & 2 deletions net/ipv6/xfrm6_policy.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,9 @@ static int xfrm6_get_saddr(xfrm_address_t *saddr, xfrm_address_t *daddr)
if (IS_ERR(dst))
return -EHOSTUNREACH;

ipv6_get_saddr(dst, (struct in6_addr *)&daddr->a6,
(struct in6_addr *)&saddr->a6);
ipv6_dev_get_saddr(ip6_dst_idev(dst)->dev,
(struct in6_addr *)&daddr->a6,
(struct in6_addr *)&saddr->a6);
dst_release(dst);
return 0;
}
Expand Down
3 changes: 2 additions & 1 deletion net/sctp/ipv6.c
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,8 @@ static void sctp_v6_get_saddr(struct sctp_association *asoc,
__FUNCTION__, asoc, dst, NIP6(daddr->v6.sin6_addr));

if (!asoc) {
ipv6_get_saddr(dst, &daddr->v6.sin6_addr,&saddr->v6.sin6_addr);
ipv6_dev_get_saddr(dst ? ip6_dst_idev(dst)->dev : NULL,
&daddr->v6.sin6_addr, &saddr->v6.sin6_addr);
SCTP_DEBUG_PRINTK("saddr from ipv6_get_saddr: " NIP6_FMT "\n",
NIP6(saddr->v6.sin6_addr));
return;
Expand Down

0 comments on commit 5e5f3f0

Please sign in to comment.