net/tls: pass context to tls_device_decrypted()
authorJakub Kicinski <jakub.kicinski@netronome.com>
Mon, 7 Oct 2019 04:09:30 +0000 (21:09 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Oct 2019 13:58:27 +0000 (09:58 -0400)
Avoid unnecessary pointer chasing and calculations, callers already
have most of the state tls_device_decrypted() needs.

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 24c37bffc961f8e69ece08c4c421de28c7675591..b809f2362049abacbd2023e382f6e0908a38fd0c 100644 (file)
@@ -641,7 +641,8 @@ int tls_set_device_offload_rx(struct sock *sk, struct tls_context *ctx);
 void tls_device_offload_cleanup_rx(struct sock *sk);
 void tls_device_rx_resync_new_rec(struct sock *sk, u32 rcd_len, u32 seq);
 void tls_offload_tx_resync_request(struct sock *sk, u32 got_seq, u32 exp_seq);
-int tls_device_decrypted(struct sock *sk, struct sk_buff *skb);
+int tls_device_decrypted(struct sock *sk, struct tls_context *tls_ctx,
+                        struct sk_buff *skb, struct strp_msg *rxm);
 #else
 static inline void tls_device_init(void) {}
 static inline void tls_device_cleanup(void) {}
@@ -664,7 +665,9 @@ static inline void tls_device_offload_cleanup_rx(struct sock *sk) {}
 static inline void
 tls_device_rx_resync_new_rec(struct sock *sk, u32 rcd_len, u32 seq) {}
 
-static inline int tls_device_decrypted(struct sock *sk, struct sk_buff *skb)
+static inline int
+tls_device_decrypted(struct sock *sk, struct tls_context *tls_ctx,
+                    struct sk_buff *skb, struct strp_msg *rxm)
 {
        return 0;
 }
index 23c19b8ff04e3cfeab8c34eceb139ca972da042f..33b267b052c00f7acb5b91b2bd1a1042cb20838a 100644 (file)
@@ -846,11 +846,10 @@ free_buf:
        return err;
 }
 
-int tls_device_decrypted(struct sock *sk, struct sk_buff *skb)
+int tls_device_decrypted(struct sock *sk, struct tls_context *tls_ctx,
+                        struct sk_buff *skb, struct strp_msg *rxm)
 {
-       struct tls_context *tls_ctx = tls_get_ctx(sk);
        struct tls_offload_context_rx *ctx = tls_offload_ctx_rx(tls_ctx);
-       struct strp_msg *rxm = strp_msg(skb);
        int is_decrypted = skb->decrypted;
        int is_encrypted = !is_decrypted;
        struct sk_buff *skb_iter;
index 0b1e86f856ebbca3ca73ba56533e03a76410f4be..954f451dcc571d3f5f847a48a8aca6b31b3a6981 100644 (file)
@@ -1495,7 +1495,7 @@ static int decrypt_skb_update(struct sock *sk, struct sk_buff *skb,
 
        if (!ctx->decrypted) {
                if (tls_ctx->rx_conf == TLS_HW) {
-                       err = tls_device_decrypted(sk, skb);
+                       err = tls_device_decrypted(sk, tls_ctx, skb, rxm);
                        if (err < 0)
                                return err;
                }