net: remove ipv6_addr_copy()
C assignment can handle struct in6_addr copying. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
40ba84993d
commit
4e3fd7a06d
@ -107,7 +107,7 @@ static int sctp_inet6addr_event(struct notifier_block *this, unsigned long ev,
|
||||
if (addr) {
|
||||
addr->a.v6.sin6_family = AF_INET6;
|
||||
addr->a.v6.sin6_port = 0;
|
||||
ipv6_addr_copy(&addr->a.v6.sin6_addr, &ifa->addr);
|
||||
addr->a.v6.sin6_addr = ifa->addr;
|
||||
addr->a.v6.sin6_scope_id = ifa->idev->dev->ifindex;
|
||||
addr->valid = 1;
|
||||
spin_lock_bh(&sctp_local_addr_lock);
|
||||
@ -219,8 +219,8 @@ static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport)
|
||||
/* Fill in the dest address from the route entry passed with the skb
|
||||
* and the source address from the transport.
|
||||
*/
|
||||
ipv6_addr_copy(&fl6.daddr, &transport->ipaddr.v6.sin6_addr);
|
||||
ipv6_addr_copy(&fl6.saddr, &transport->saddr.v6.sin6_addr);
|
||||
fl6.daddr = transport->ipaddr.v6.sin6_addr;
|
||||
fl6.saddr = transport->saddr.v6.sin6_addr;
|
||||
|
||||
fl6.flowlabel = np->flow_label;
|
||||
IP6_ECN_flow_xmit(sk, fl6.flowlabel);
|
||||
@ -231,7 +231,7 @@ static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport)
|
||||
|
||||
if (np->opt && np->opt->srcrt) {
|
||||
struct rt0_hdr *rt0 = (struct rt0_hdr *) np->opt->srcrt;
|
||||
ipv6_addr_copy(&fl6.daddr, rt0->addr);
|
||||
fl6.daddr = *rt0->addr;
|
||||
}
|
||||
|
||||
SCTP_DEBUG_PRINTK("%s: skb:%p, len:%d, src:%pI6 dst:%pI6\n",
|
||||
@ -265,7 +265,7 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
|
||||
sctp_scope_t scope;
|
||||
|
||||
memset(fl6, 0, sizeof(struct flowi6));
|
||||
ipv6_addr_copy(&fl6->daddr, &daddr->v6.sin6_addr);
|
||||
fl6->daddr = daddr->v6.sin6_addr;
|
||||
fl6->fl6_dport = daddr->v6.sin6_port;
|
||||
fl6->flowi6_proto = IPPROTO_SCTP;
|
||||
if (ipv6_addr_type(&daddr->v6.sin6_addr) & IPV6_ADDR_LINKLOCAL)
|
||||
@ -277,7 +277,7 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
|
||||
fl6->fl6_sport = htons(asoc->base.bind_addr.port);
|
||||
|
||||
if (saddr) {
|
||||
ipv6_addr_copy(&fl6->saddr, &saddr->v6.sin6_addr);
|
||||
fl6->saddr = saddr->v6.sin6_addr;
|
||||
fl6->fl6_sport = saddr->v6.sin6_port;
|
||||
SCTP_DEBUG_PRINTK("SRC=%pI6 - ", &fl6->saddr);
|
||||
}
|
||||
@ -334,7 +334,7 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
|
||||
}
|
||||
rcu_read_unlock();
|
||||
if (baddr) {
|
||||
ipv6_addr_copy(&fl6->saddr, &baddr->v6.sin6_addr);
|
||||
fl6->saddr = baddr->v6.sin6_addr;
|
||||
fl6->fl6_sport = baddr->v6.sin6_port;
|
||||
dst = ip6_dst_lookup_flow(sk, fl6, NULL, false);
|
||||
}
|
||||
@ -375,7 +375,7 @@ static void sctp_v6_get_saddr(struct sctp_sock *sk,
|
||||
|
||||
if (t->dst) {
|
||||
saddr->v6.sin6_family = AF_INET6;
|
||||
ipv6_addr_copy(&saddr->v6.sin6_addr, &fl6->saddr);
|
||||
saddr->v6.sin6_addr = fl6->saddr;
|
||||
}
|
||||
}
|
||||
|
||||
@ -400,7 +400,7 @@ static void sctp_v6_copy_addrlist(struct list_head *addrlist,
|
||||
if (addr) {
|
||||
addr->a.v6.sin6_family = AF_INET6;
|
||||
addr->a.v6.sin6_port = 0;
|
||||
ipv6_addr_copy(&addr->a.v6.sin6_addr, &ifp->addr);
|
||||
addr->a.v6.sin6_addr = ifp->addr;
|
||||
addr->a.v6.sin6_scope_id = dev->ifindex;
|
||||
addr->valid = 1;
|
||||
INIT_LIST_HEAD(&addr->list);
|
||||
@ -416,7 +416,6 @@ static void sctp_v6_copy_addrlist(struct list_head *addrlist,
|
||||
static void sctp_v6_from_skb(union sctp_addr *addr,struct sk_buff *skb,
|
||||
int is_saddr)
|
||||
{
|
||||
void *from;
|
||||
__be16 *port;
|
||||
struct sctphdr *sh;
|
||||
|
||||
@ -428,12 +427,11 @@ static void sctp_v6_from_skb(union sctp_addr *addr,struct sk_buff *skb,
|
||||
sh = sctp_hdr(skb);
|
||||
if (is_saddr) {
|
||||
*port = sh->source;
|
||||
from = &ipv6_hdr(skb)->saddr;
|
||||
addr->v6.sin6_addr = ipv6_hdr(skb)->saddr;
|
||||
} else {
|
||||
*port = sh->dest;
|
||||
from = &ipv6_hdr(skb)->daddr;
|
||||
addr->v6.sin6_addr = ipv6_hdr(skb)->daddr;
|
||||
}
|
||||
ipv6_addr_copy(&addr->v6.sin6_addr, from);
|
||||
}
|
||||
|
||||
/* Initialize an sctp_addr from a socket. */
|
||||
@ -441,7 +439,7 @@ static void sctp_v6_from_sk(union sctp_addr *addr, struct sock *sk)
|
||||
{
|
||||
addr->v6.sin6_family = AF_INET6;
|
||||
addr->v6.sin6_port = 0;
|
||||
ipv6_addr_copy(&addr->v6.sin6_addr, &inet6_sk(sk)->rcv_saddr);
|
||||
addr->v6.sin6_addr = inet6_sk(sk)->rcv_saddr;
|
||||
}
|
||||
|
||||
/* Initialize sk->sk_rcv_saddr from sctp_addr. */
|
||||
@ -454,7 +452,7 @@ static void sctp_v6_to_sk_saddr(union sctp_addr *addr, struct sock *sk)
|
||||
inet6_sk(sk)->rcv_saddr.s6_addr32[3] =
|
||||
addr->v4.sin_addr.s_addr;
|
||||
} else {
|
||||
ipv6_addr_copy(&inet6_sk(sk)->rcv_saddr, &addr->v6.sin6_addr);
|
||||
inet6_sk(sk)->rcv_saddr = addr->v6.sin6_addr;
|
||||
}
|
||||
}
|
||||
|
||||
@ -467,7 +465,7 @@ static void sctp_v6_to_sk_daddr(union sctp_addr *addr, struct sock *sk)
|
||||
inet6_sk(sk)->daddr.s6_addr32[2] = htonl(0x0000ffff);
|
||||
inet6_sk(sk)->daddr.s6_addr32[3] = addr->v4.sin_addr.s_addr;
|
||||
} else {
|
||||
ipv6_addr_copy(&inet6_sk(sk)->daddr, &addr->v6.sin6_addr);
|
||||
inet6_sk(sk)->daddr = addr->v6.sin6_addr;
|
||||
}
|
||||
}
|
||||
|
||||
@ -479,7 +477,7 @@ static void sctp_v6_from_addr_param(union sctp_addr *addr,
|
||||
addr->v6.sin6_family = AF_INET6;
|
||||
addr->v6.sin6_port = port;
|
||||
addr->v6.sin6_flowinfo = 0; /* BUG */
|
||||
ipv6_addr_copy(&addr->v6.sin6_addr, ¶m->v6.addr);
|
||||
addr->v6.sin6_addr = param->v6.addr;
|
||||
addr->v6.sin6_scope_id = iif;
|
||||
}
|
||||
|
||||
@ -493,7 +491,7 @@ static int sctp_v6_to_addr_param(const union sctp_addr *addr,
|
||||
|
||||
param->v6.param_hdr.type = SCTP_PARAM_IPV6_ADDRESS;
|
||||
param->v6.param_hdr.length = htons(length);
|
||||
ipv6_addr_copy(¶m->v6.addr, &addr->v6.sin6_addr);
|
||||
param->v6.addr = addr->v6.sin6_addr;
|
||||
|
||||
return length;
|
||||
}
|
||||
@ -504,7 +502,7 @@ static void sctp_v6_to_addr(union sctp_addr *addr, struct in6_addr *saddr,
|
||||
{
|
||||
addr->sa.sa_family = AF_INET6;
|
||||
addr->v6.sin6_port = port;
|
||||
ipv6_addr_copy(&addr->v6.sin6_addr, saddr);
|
||||
addr->v6.sin6_addr = *saddr;
|
||||
}
|
||||
|
||||
/* Compare addresses exactly.
|
||||
@ -759,7 +757,7 @@ static void sctp_inet6_event_msgname(struct sctp_ulpevent *event,
|
||||
}
|
||||
|
||||
sin6from = &asoc->peer.primary_addr.v6;
|
||||
ipv6_addr_copy(&sin6->sin6_addr, &sin6from->sin6_addr);
|
||||
sin6->sin6_addr = sin6from->sin6_addr;
|
||||
if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LINKLOCAL)
|
||||
sin6->sin6_scope_id = sin6from->sin6_scope_id;
|
||||
}
|
||||
@ -787,7 +785,7 @@ static void sctp_inet6_skb_msgname(struct sk_buff *skb, char *msgname,
|
||||
}
|
||||
|
||||
/* Otherwise, just copy the v6 address. */
|
||||
ipv6_addr_copy(&sin6->sin6_addr, &ipv6_hdr(skb)->saddr);
|
||||
sin6->sin6_addr = ipv6_hdr(skb)->saddr;
|
||||
if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LINKLOCAL) {
|
||||
struct sctp_ulpevent *ev = sctp_skb2event(skb);
|
||||
sin6->sin6_scope_id = ev->iif;
|
||||
|
Reference in New Issue
Block a user