net/tls: don't pass version to tls_advance_record_sn()
authorJakub Kicinski <jakub.kicinski@netronome.com>
Mon, 3 Jun 2019 22:17:05 +0000 (15:17 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 4 Jun 2019 21:33:50 +0000 (14:33 -0700)
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.kicinski@netronome.com>
Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tls.h
net/tls/tls_device.c
net/tls/tls_sw.c

index a463a60..0a00726 100644 (file)
@@ -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,
index 8ffc8f9..51e556e 100644 (file)
@@ -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];
index f833407..bef71e5 100644 (file)
@@ -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 {