diff options
Diffstat (limited to 'net/ipv4/tcp_minisocks.c')
| -rw-r--r-- | net/ipv4/tcp_minisocks.c | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index b5732a54f2ad..17e7339ee5ca 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c @@ -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); |