aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_minisocks.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-06-08 10:19:40 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-06-08 10:19:40 -0700
commit987aec39a74373c55c3bedd5c3c83896d78fd0a2 (patch)
tree66aba6d4f166f269be95fe4d267d57efe533aefd /net/ipv4/tcp_minisocks.c
parent303cda0ea7c1c33701812ccb80d37083a4093c7c (diff)
parentd4a4f75cd8f29cd9464a5a32e9224a91571d6649 (diff)
downloadkernel_replicant_linux-987aec39a74373c55c3bedd5c3c83896d78fd0a2.tar.gz
kernel_replicant_linux-987aec39a74373c55c3bedd5c3c83896d78fd0a2.tar.bz2
kernel_replicant_linux-987aec39a74373c55c3bedd5c3c83896d78fd0a2.zip
Merge 4.1-rc7 into driver-core-next
We want the fixes in this branch as well for testing and merge resolution. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/ipv4/tcp_minisocks.c')
-rw-r--r--net/ipv4/tcp_minisocks.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
index e5d7649136fc..17e7339ee5ca 100644
--- a/net/ipv4/tcp_minisocks.c
+++ b/net/ipv4/tcp_minisocks.c
@@ -300,7 +300,7 @@ void tcp_time_wait(struct sock *sk, int state, int timeo)
tw->tw_v6_daddr = sk->sk_v6_daddr;
tw->tw_v6_rcv_saddr = sk->sk_v6_rcv_saddr;
tw->tw_tclass = np->tclass;
- tw->tw_flowlabel = np->flow_label >> 12;
+ tw->tw_flowlabel = be32_to_cpu(np->flow_label & IPV6_FLOWLABEL_MASK);
tw->tw_ipv6only = sk->sk_ipv6only;
}
#endif
@@ -420,7 +420,10 @@ void tcp_ca_openreq_child(struct sock *sk, const struct dst_entry *dst)
rcu_read_unlock();
}
- if (!ca_got_dst && !try_module_get(icsk->icsk_ca_ops->owner))
+ /* If no valid choice made yet, assign current system default ca. */
+ if (!ca_got_dst &&
+ (!icsk->icsk_ca_setsockopt ||
+ !try_module_get(icsk->icsk_ca_ops->owner)))
tcp_assign_congestion_control(sk);
tcp_set_ca_state(sk, TCP_CA_Open);