diff options
Diffstat (limited to 'net/tls/tls_main.c')
| -rw-r--r-- | net/tls/tls_main.c | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c index da176411c1b5..d80ab3d1764e 100644 --- a/net/tls/tls_main.c +++ b/net/tls/tls_main.c @@ -921,6 +921,8 @@ static void tls_update(struct sock *sk, struct proto *p,  {  	struct tls_context *ctx; +	WARN_ON_ONCE(sk->sk_prot == p); +  	ctx = tls_get_ctx(sk);  	if (likely(ctx)) {  		ctx->sk_write_space = write_space; @@ -1046,7 +1048,12 @@ static int __init tls_register(void)  	if (err)  		return err; -	tls_device_init(); +	err = tls_device_init(); +	if (err) { +		unregister_pernet_subsys(&tls_proc_ops); +		return err; +	} +  	tcp_register_ulp(&tcp_tls_ulp_ops);  	return 0;  |