Skip to content

Commit df8d866

Browse files
Tariq ToukanSaeed Mahameed
authored andcommitted
net/mlx5e: kTLS, Use kernel API to extract private offload context
Modify the implementation of the private kTLS TX HW offload context getter and setter, so it uses the kernel API functions, instead of a local shadow structure. A single BUILD_BUG_ON check is sufficient, remove the duplicate. Signed-off-by: Tariq Toukan <[email protected]> Reviewed-by: Maxim Mikityanskiy <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent 7d0d0d8 commit df8d866

File tree

1 file changed

+9
-19
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core/en_accel

1 file changed

+9
-19
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -56,37 +56,26 @@ struct mlx5e_ktls_offload_context_tx {
5656
bool ctx_post_pending;
5757
};
5858

59-
struct mlx5e_ktls_offload_context_tx_shadow {
60-
struct tls_offload_context_tx tx_ctx;
61-
struct mlx5e_ktls_offload_context_tx *priv_tx;
62-
};
63-
6459
static void
6560
mlx5e_set_ktls_tx_priv_ctx(struct tls_context *tls_ctx,
6661
struct mlx5e_ktls_offload_context_tx *priv_tx)
6762
{
68-
struct tls_offload_context_tx *tx_ctx = tls_offload_ctx_tx(tls_ctx);
69-
struct mlx5e_ktls_offload_context_tx_shadow *shadow;
63+
struct mlx5e_ktls_offload_context_tx **ctx =
64+
__tls_driver_ctx(tls_ctx, TLS_OFFLOAD_CTX_DIR_TX);
7065

71-
BUILD_BUG_ON(sizeof(*shadow) > TLS_OFFLOAD_CONTEXT_SIZE_TX);
66+
BUILD_BUG_ON(sizeof(struct mlx5e_ktls_offload_context_tx *) >
67+
TLS_OFFLOAD_CONTEXT_SIZE_TX);
7268

73-
shadow = (struct mlx5e_ktls_offload_context_tx_shadow *)tx_ctx;
74-
75-
shadow->priv_tx = priv_tx;
76-
priv_tx->tx_ctx = tx_ctx;
69+
*ctx = priv_tx;
7770
}
7871

7972
static struct mlx5e_ktls_offload_context_tx *
8073
mlx5e_get_ktls_tx_priv_ctx(struct tls_context *tls_ctx)
8174
{
82-
struct tls_offload_context_tx *tx_ctx = tls_offload_ctx_tx(tls_ctx);
83-
struct mlx5e_ktls_offload_context_tx_shadow *shadow;
84-
85-
BUILD_BUG_ON(sizeof(*shadow) > TLS_OFFLOAD_CONTEXT_SIZE_TX);
86-
87-
shadow = (struct mlx5e_ktls_offload_context_tx_shadow *)tx_ctx;
75+
struct mlx5e_ktls_offload_context_tx **ctx =
76+
__tls_driver_ctx(tls_ctx, TLS_OFFLOAD_CTX_DIR_TX);
8877

89-
return shadow->priv_tx;
78+
return *ctx;
9079
}
9180

9281
int mlx5e_ktls_add_tx(struct net_device *netdev, struct sock *sk,
@@ -113,6 +102,7 @@ int mlx5e_ktls_add_tx(struct net_device *netdev, struct sock *sk,
113102
priv_tx->expected_seq = start_offload_tcp_sn;
114103
priv_tx->crypto_info =
115104
*(struct tls12_crypto_info_aes_gcm_128 *)crypto_info;
105+
priv_tx->tx_ctx = tls_offload_ctx_tx(tls_ctx);
116106

117107
mlx5e_set_ktls_tx_priv_ctx(tls_ctx, priv_tx);
118108

0 commit comments

Comments
 (0)