Move release of tls_ctx into sw specific code. This is required because the device offload implementation requires this context to remain alive until there are no more in-flight SKBs.
Signed-off-by: Boris Pismenny <bor...@mellanox.com> Signed-off-by: Ilya Lesokhin <il...@mellanox.com> Signed-off-by: Aviad Yehezkel <avia...@mellanox.com> --- net/tls/tls_main.c | 5 ++--- net/tls/tls_sw.c | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c index 60aff60..ae20ee3 100644 --- a/net/tls/tls_main.c +++ b/net/tls/tls_main.c @@ -232,12 +232,11 @@ static void tls_sk_proto_close(struct sock *sk, long timeout) sg++; } } - ctx->free_resources(sk); + kfree(ctx->rec_seq); kfree(ctx->iv); - sk_proto_close = ctx->sk_proto_close; - kfree(ctx); + ctx->free_resources(sk); release_sock(sk); sk_proto_close(sk, timeout); diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index fa596fa..db1e566 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c @@ -650,6 +650,7 @@ void tls_sw_free_resources(struct sock *sk) tls_free_both_sg(sk); kfree(ctx); + kfree(tls_ctx); } int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx) -- 1.8.3.1