All callers pass prot->version as the last parameter
of tls_advance_record_sn(), yet tls_advance_record_sn()
itself needs a pointer to prot.  Pass prot from callers.

Signed-off-by: Jakub Kicinski <jakub.kicin...@netronome.com>
Reviewed-by: Dirk van der Merwe <dirk.vanderme...@netronome.com>
---
 include/net/tls.h    | 10 +++-------
 net/tls/tls_device.c |  2 +-
 net/tls/tls_sw.c     |  9 ++++-----
 3 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/include/net/tls.h b/include/net/tls.h
index a463a6074e5d..0a0072636009 100644
--- a/include/net/tls.h
+++ b/include/net/tls.h
@@ -446,19 +446,15 @@ static inline struct tls_context *tls_get_ctx(const 
struct sock *sk)
 }
 
 static inline void tls_advance_record_sn(struct sock *sk,
-                                        struct cipher_context *ctx,
-                                        int version)
+                                        struct tls_prot_info *prot,
+                                        struct cipher_context *ctx)
 {
-       struct tls_context *tls_ctx = tls_get_ctx(sk);
-       struct tls_prot_info *prot = &tls_ctx->prot_info;
-
        if (tls_bigint_increment(ctx->rec_seq, prot->rec_seq_size))
                tls_err_abort(sk, EBADMSG);
 
-       if (version != TLS_1_3_VERSION) {
+       if (prot->version != TLS_1_3_VERSION)
                tls_bigint_increment(ctx->iv + TLS_CIPHER_AES_GCM_128_SALT_SIZE,
                                     prot->iv_size);
-       }
 }
 
 static inline void tls_fill_prepend(struct tls_context *ctx,
diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c
index 8ffc8f95f55f..51e556e79371 100644
--- a/net/tls/tls_device.c
+++ b/net/tls/tls_device.c
@@ -264,7 +264,7 @@ static int tls_push_record(struct sock *sk,
        list_add_tail(&record->list, &offload_ctx->records_list);
        spin_unlock_irq(&offload_ctx->lock);
        offload_ctx->open_record = NULL;
-       tls_advance_record_sn(sk, &ctx->tx, prot->version);
+       tls_advance_record_sn(sk, prot, &ctx->tx);
 
        for (i = 0; i < record->num_frags; i++) {
                frag = &record->frags[i];
diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
index f833407c789f..bef71e54fad0 100644
--- a/net/tls/tls_sw.c
+++ b/net/tls/tls_sw.c
@@ -534,7 +534,7 @@ static int tls_do_encryption(struct sock *sk,
 
        /* Unhook the record from context if encryption is not failure */
        ctx->open_rec = NULL;
-       tls_advance_record_sn(sk, &tls_ctx->tx, prot->version);
+       tls_advance_record_sn(sk, prot, &tls_ctx->tx);
        return rc;
 }
 
@@ -1486,7 +1486,6 @@ static int decrypt_skb_update(struct sock *sk, struct 
sk_buff *skb,
        struct tls_context *tls_ctx = tls_get_ctx(sk);
        struct tls_sw_context_rx *ctx = tls_sw_ctx_rx(tls_ctx);
        struct tls_prot_info *prot = &tls_ctx->prot_info;
-       int version = prot->version;
        struct strp_msg *rxm = strp_msg(skb);
        int pad, err = 0;
 
@@ -1504,8 +1503,8 @@ static int decrypt_skb_update(struct sock *sk, struct 
sk_buff *skb,
                                               async);
                        if (err < 0) {
                                if (err == -EINPROGRESS)
-                                       tls_advance_record_sn(sk, &tls_ctx->rx,
-                                                             version);
+                                       tls_advance_record_sn(sk, prot,
+                                                             &tls_ctx->rx);
 
                                return err;
                        }
@@ -1520,7 +1519,7 @@ static int decrypt_skb_update(struct sock *sk, struct 
sk_buff *skb,
                rxm->full_len -= pad;
                rxm->offset += prot->prepend_size;
                rxm->full_len -= prot->overhead_size;
-               tls_advance_record_sn(sk, &tls_ctx->rx, version);
+               tls_advance_record_sn(sk, prot, &tls_ctx->rx);
                ctx->decrypted = true;
                ctx->saved_data_ready(sk);
        } else {
-- 
2.21.0

Reply via email to