diff options
Diffstat (limited to 'net/tls')
-rw-r--r-- | net/tls/tls.h | 4 | ||||
-rw-r--r-- | net/tls/tls_device.c | 4 | ||||
-rw-r--r-- | net/tls/tls_main.c | 7 |
3 files changed, 10 insertions, 5 deletions
diff --git a/net/tls/tls.h b/net/tls/tls.h index 8005ee25157d..e0ccc96a0850 100644 --- a/net/tls/tls.h +++ b/net/tls/tls.h @@ -133,7 +133,7 @@ static inline struct tls_msg *tls_msg(struct sk_buff *skb) } #ifdef CONFIG_TLS_DEVICE -void tls_device_init(void); +int tls_device_init(void); void tls_device_cleanup(void); int tls_set_device_offload(struct sock *sk, struct tls_context *ctx); void tls_device_free_resources_tx(struct sock *sk); @@ -143,7 +143,7 @@ void tls_device_rx_resync_new_rec(struct sock *sk, u32 rcd_len, u32 seq); int tls_device_decrypted(struct sock *sk, struct tls_context *tls_ctx, struct sk_buff *skb, struct strp_msg *rxm); #else -static inline void tls_device_init(void) {} +static inline int tls_device_init(void) { return 0; } static inline void tls_device_cleanup(void) {} static inline int diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c index 227b92a3064a..6f9dff1c11f6 100644 --- a/net/tls/tls_device.c +++ b/net/tls/tls_device.c @@ -1420,9 +1420,9 @@ static struct notifier_block tls_dev_notifier = { .notifier_call = tls_dev_event, }; -void __init tls_device_init(void) +int __init tls_device_init(void) { - register_netdevice_notifier(&tls_dev_notifier); + return register_netdevice_notifier(&tls_dev_notifier); } void __exit tls_device_cleanup(void) diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c index f71b46568112..9703636cfc60 100644 --- a/net/tls/tls_main.c +++ b/net/tls/tls_main.c @@ -1141,7 +1141,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; |