|
@@ -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;
|