diff options
-rw-r--r-- | include/net/sctp/structs.h | 1 | ||||
-rw-r--r-- | net/sctp/ipv6.c | 4 | ||||
-rw-r--r-- | net/sctp/transport.c | 4 |
3 files changed, 3 insertions, 6 deletions
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 8f6619dbb666..275195620145 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -904,7 +904,6 @@ struct sctp_transport { | |||
904 | struct dst_entry *dst; | 904 | struct dst_entry *dst; |
905 | /* Source address. */ | 905 | /* Source address. */ |
906 | union sctp_addr saddr; | 906 | union sctp_addr saddr; |
907 | union sctp_addr saddr_h; | ||
908 | 907 | ||
909 | /* When was the last time(in jiffies) that a data packet was sent on | 908 | /* When was the last time(in jiffies) that a data packet was sent on |
910 | * this transport? This is used to adjust the cwnd when the transport | 909 | * this transport? This is used to adjust the cwnd when the transport |
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c index 7f4c5bafea14..3dc8ed143521 100644 --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c | |||
@@ -162,12 +162,12 @@ static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport, | |||
162 | * and the source address from the transport. | 162 | * and the source address from the transport. |
163 | */ | 163 | */ |
164 | ipv6_addr_copy(&fl.fl6_dst, &transport->ipaddr_h.v6.sin6_addr); | 164 | ipv6_addr_copy(&fl.fl6_dst, &transport->ipaddr_h.v6.sin6_addr); |
165 | ipv6_addr_copy(&fl.fl6_src, &transport->saddr_h.v6.sin6_addr); | 165 | ipv6_addr_copy(&fl.fl6_src, &transport->saddr.v6.sin6_addr); |
166 | 166 | ||
167 | fl.fl6_flowlabel = np->flow_label; | 167 | fl.fl6_flowlabel = np->flow_label; |
168 | IP6_ECN_flow_xmit(sk, fl.fl6_flowlabel); | 168 | IP6_ECN_flow_xmit(sk, fl.fl6_flowlabel); |
169 | if (ipv6_addr_type(&fl.fl6_src) & IPV6_ADDR_LINKLOCAL) | 169 | if (ipv6_addr_type(&fl.fl6_src) & IPV6_ADDR_LINKLOCAL) |
170 | fl.oif = transport->saddr_h.v6.sin6_scope_id; | 170 | fl.oif = transport->saddr.v6.sin6_scope_id; |
171 | else | 171 | else |
172 | fl.oif = sk->sk_bound_dev_if; | 172 | fl.oif = sk->sk_bound_dev_if; |
173 | fl.fl_ip_sport = inet_sk(sk)->sport; | 173 | fl.fl_ip_sport = inet_sk(sk)->sport; |
diff --git a/net/sctp/transport.c b/net/sctp/transport.c index d1b6834a3a47..05ab5e9c7c47 100644 --- a/net/sctp/transport.c +++ b/net/sctp/transport.c | |||
@@ -68,7 +68,6 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer, | |||
68 | 68 | ||
69 | peer->dst = NULL; | 69 | peer->dst = NULL; |
70 | memset(&peer->saddr, 0, sizeof(union sctp_addr)); | 70 | memset(&peer->saddr, 0, sizeof(union sctp_addr)); |
71 | memset(&peer->saddr_h, 0, sizeof(union sctp_addr)); | ||
72 | 71 | ||
73 | /* From 6.3.1 RTO Calculation: | 72 | /* From 6.3.1 RTO Calculation: |
74 | * | 73 | * |
@@ -261,7 +260,6 @@ void sctp_transport_route(struct sctp_transport *transport, | |||
261 | else | 260 | else |
262 | af->get_saddr(asoc, dst, daddr, &transport->saddr); | 261 | af->get_saddr(asoc, dst, daddr, &transport->saddr); |
263 | 262 | ||
264 | flip_to_h(&transport->saddr_h, &transport->saddr); | ||
265 | transport->dst = dst; | 263 | transport->dst = dst; |
266 | if ((transport->param_flags & SPP_PMTUD_DISABLE) && transport->pathmtu) { | 264 | if ((transport->param_flags & SPP_PMTUD_DISABLE) && transport->pathmtu) { |
267 | return; | 265 | return; |
@@ -273,7 +271,7 @@ void sctp_transport_route(struct sctp_transport *transport, | |||
273 | * association's active path for getsockname(). | 271 | * association's active path for getsockname(). |
274 | */ | 272 | */ |
275 | if (asoc && (transport == asoc->peer.active_path)) | 273 | if (asoc && (transport == asoc->peer.active_path)) |
276 | opt->pf->af->to_sk_saddr(&transport->saddr_h, | 274 | opt->pf->af->to_sk_saddr(&transport->saddr, |
277 | asoc->base.sk); | 275 | asoc->base.sk); |
278 | } else | 276 | } else |
279 | transport->pathmtu = SCTP_DEFAULT_MAXSEGMENT; | 277 | transport->pathmtu = SCTP_DEFAULT_MAXSEGMENT; |