tls: remove tls_context argument from tls_set_sw_offload
authorSabrina Dubroca <sd@queasysnail.net>
Mon, 9 Oct 2023 20:50:50 +0000 (22:50 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Oct 2023 10:26:10 +0000 (11:26 +0100)
It's not really needed since we end up refetching it as tls_ctx. We
can also remove the NULL check, since we have already dereferenced ctx
in do_tls_setsockopt_conf.

Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tls/tls.h
net/tls/tls_device.c
net/tls/tls_main.c
net/tls/tls_sw.c

index 756ed6cbc3dff859434de0cf3f2ac71f99f90b2c..d9e8cd73b20e59b22582a4c90fa2f04d2b507b0d 100644 (file)
@@ -146,7 +146,7 @@ int init_prot_info(struct tls_prot_info *prot,
                   const struct tls_crypto_info *crypto_info,
                   const struct tls_cipher_desc *cipher_desc,
                   int mode);
-int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx, int tx);
+int tls_set_sw_offload(struct sock *sk, int tx);
 void tls_update_rx_zc_capable(struct tls_context *tls_ctx);
 void tls_sw_strparser_arm(struct sock *sk, struct tls_context *ctx);
 void tls_sw_strparser_done(struct tls_context *tls_ctx);
index 0184426251b0d7ff2f3a68e80503679caa966acb..1dc217870f9d615addb36b96db3bac748451d774 100644 (file)
@@ -1233,7 +1233,7 @@ int tls_set_device_offload_rx(struct sock *sk, struct tls_context *ctx)
        context->resync_nh_reset = 1;
 
        ctx->priv_ctx_rx = context;
-       rc = tls_set_sw_offload(sk, ctx, 0);
+       rc = tls_set_sw_offload(sk, 0);
        if (rc)
                goto release_ctx;
 
index b91524ac10096512c4eeff604edb8d50aafa3cb2..6c5e0cad89e883317ce668bf234edfa799ae07ef 100644 (file)
@@ -663,7 +663,7 @@ static int do_tls_setsockopt_conf(struct sock *sk, sockptr_t optval,
                        TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSTXDEVICE);
                        TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSCURRTXDEVICE);
                } else {
-                       rc = tls_set_sw_offload(sk, ctx, 1);
+                       rc = tls_set_sw_offload(sk, 1);
                        if (rc)
                                goto err_crypto_info;
                        TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSTXSW);
@@ -677,7 +677,7 @@ static int do_tls_setsockopt_conf(struct sock *sk, sockptr_t optval,
                        TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSRXDEVICE);
                        TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSCURRRXDEVICE);
                } else {
-                       rc = tls_set_sw_offload(sk, ctx, 0);
+                       rc = tls_set_sw_offload(sk, 0);
                        if (rc)
                                goto err_crypto_info;
                        TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSRXSW);
index 0995d3d14f4b5db8021e8ac5b8111bdc664a7cb6..0f6da4ce3ed7ddae07cf75ddddbfb845f6580b03 100644 (file)
@@ -2657,24 +2657,22 @@ int init_prot_info(struct tls_prot_info *prot,
        return 0;
 }
 
-int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx, int tx)
+int tls_set_sw_offload(struct sock *sk, int tx)
 {
-       struct tls_context *tls_ctx = tls_get_ctx(sk);
-       struct tls_prot_info *prot = &tls_ctx->prot_info;
-       struct tls_crypto_info *crypto_info;
        struct tls_sw_context_tx *sw_ctx_tx = NULL;
        struct tls_sw_context_rx *sw_ctx_rx = NULL;
+       const struct tls_cipher_desc *cipher_desc;
+       struct tls_crypto_info *crypto_info;
+       char *iv, *rec_seq, *key, *salt;
        struct cipher_context *cctx;
+       struct tls_prot_info *prot;
        struct crypto_aead **aead;
+       struct tls_context *ctx;
        struct crypto_tfm *tfm;
-       char *iv, *rec_seq, *key, *salt;
-       const struct tls_cipher_desc *cipher_desc;
        int rc = 0;
 
-       if (!ctx) {
-               rc = -EINVAL;
-               goto out;
-       }
+       ctx = tls_get_ctx(sk);
+       prot = &ctx->prot_info;
 
        if (tx) {
                ctx->priv_ctx_tx = init_ctx_tx(ctx, sk);