diff options
Diffstat (limited to 'net/tls/tls_device.c')
-rw-r--r-- | net/tls/tls_device.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c index 135a7ee9db03..9f3bdbc1e593 100644 --- a/net/tls/tls_device.c +++ b/net/tls/tls_device.c | |||
@@ -52,8 +52,11 @@ static DEFINE_SPINLOCK(tls_device_lock); | |||
52 | 52 | ||
53 | static void tls_device_free_ctx(struct tls_context *ctx) | 53 | static void tls_device_free_ctx(struct tls_context *ctx) |
54 | { | 54 | { |
55 | if (ctx->tx_conf == TLS_HW) | 55 | if (ctx->tx_conf == TLS_HW) { |
56 | kfree(tls_offload_ctx_tx(ctx)); | 56 | kfree(tls_offload_ctx_tx(ctx)); |
57 | kfree(ctx->tx.rec_seq); | ||
58 | kfree(ctx->tx.iv); | ||
59 | } | ||
57 | 60 | ||
58 | if (ctx->rx_conf == TLS_HW) | 61 | if (ctx->rx_conf == TLS_HW) |
59 | kfree(tls_offload_ctx_rx(ctx)); | 62 | kfree(tls_offload_ctx_rx(ctx)); |
@@ -216,6 +219,13 @@ void tls_device_sk_destruct(struct sock *sk) | |||
216 | } | 219 | } |
217 | EXPORT_SYMBOL(tls_device_sk_destruct); | 220 | EXPORT_SYMBOL(tls_device_sk_destruct); |
218 | 221 | ||
222 | void tls_device_free_resources_tx(struct sock *sk) | ||
223 | { | ||
224 | struct tls_context *tls_ctx = tls_get_ctx(sk); | ||
225 | |||
226 | tls_free_partial_record(sk, tls_ctx); | ||
227 | } | ||
228 | |||
219 | static void tls_append_frag(struct tls_record_info *record, | 229 | static void tls_append_frag(struct tls_record_info *record, |
220 | struct page_frag *pfrag, | 230 | struct page_frag *pfrag, |
221 | int size) | 231 | int size) |