};
 
 struct mlx5e_tls_offload_context {
-       struct tls_offload_context base;
+       struct tls_offload_context_tx base;
        u32 expected_seq;
        __be32 swid;
 };
 mlx5e_get_tls_tx_context(struct tls_context *tls_ctx)
 {
        BUILD_BUG_ON(sizeof(struct mlx5e_tls_offload_context) >
-                    TLS_OFFLOAD_CONTEXT_SIZE);
-       return container_of(tls_offload_ctx(tls_ctx),
+                    TLS_OFFLOAD_CONTEXT_SIZE_TX);
+       return container_of(tls_offload_ctx_tx(tls_ctx),
                            struct mlx5e_tls_offload_context,
                            base);
 }
 
        skb_frag_t frags[MAX_SKB_FRAGS];
 };
 
-struct tls_offload_context {
+struct tls_offload_context_tx {
        struct crypto_aead *aead_send;
        spinlock_t lock;        /* protects records list */
        struct list_head records_list;
 #define TLS_DRIVER_STATE_SIZE (max_t(size_t, 8, sizeof(void *)))
 };
 
-#define TLS_OFFLOAD_CONTEXT_SIZE                                               \
-       (ALIGN(sizeof(struct tls_offload_context), sizeof(void *)) +           \
+#define TLS_OFFLOAD_CONTEXT_SIZE_TX                                            \
+       (ALIGN(sizeof(struct tls_offload_context_tx), sizeof(void *)) +        \
         TLS_DRIVER_STATE_SIZE)
 
 enum {
 void tls_device_init(void);
 void tls_device_cleanup(void);
 
-struct tls_record_info *tls_get_record(struct tls_offload_context *context,
+struct tls_record_info *tls_get_record(struct tls_offload_context_tx *context,
                                       u32 seq, u64 *p_record_sn);
 
 static inline bool tls_record_is_start_marker(struct tls_record_info *rec)
        return (struct tls_sw_context_tx *)tls_ctx->priv_ctx_tx;
 }
 
-static inline struct tls_offload_context *tls_offload_ctx(
-               const struct tls_context *tls_ctx)
+static inline struct tls_offload_context_tx *
+tls_offload_ctx_tx(const struct tls_context *tls_ctx)
 {
-       return (struct tls_offload_context *)tls_ctx->priv_ctx_tx;
+       return (struct tls_offload_context_tx *)tls_ctx->priv_ctx_tx;
 }
 
 int tls_proccess_cmsg(struct sock *sk, struct msghdr *msg,
                                      struct sk_buff *skb);
 
 int tls_sw_fallback_init(struct sock *sk,
-                        struct tls_offload_context *offload_ctx,
+                        struct tls_offload_context_tx *offload_ctx,
                         struct tls_crypto_info *crypto_info);
 
 #endif /* _TLS_OFFLOAD_H */
 
 
 static void tls_device_free_ctx(struct tls_context *ctx)
 {
-       struct tls_offload_context *offload_ctx = tls_offload_ctx(ctx);
+       kfree(tls_offload_ctx_tx(ctx));
 
-       kfree(offload_ctx);
        kfree(ctx);
 }
 
        kfree(record);
 }
 
-static void delete_all_records(struct tls_offload_context *offload_ctx)
+static void delete_all_records(struct tls_offload_context_tx *offload_ctx)
 {
        struct tls_record_info *info, *temp;
 
 {
        struct tls_context *tls_ctx = tls_get_ctx(sk);
        struct tls_record_info *info, *temp;
-       struct tls_offload_context *ctx;
+       struct tls_offload_context_tx *ctx;
        u64 deleted_records = 0;
        unsigned long flags;
 
        if (!tls_ctx)
                return;
 
-       ctx = tls_offload_ctx(tls_ctx);
+       ctx = tls_offload_ctx_tx(tls_ctx);
 
        spin_lock_irqsave(&ctx->lock, flags);
        info = ctx->retransmit_hint;
 void tls_device_sk_destruct(struct sock *sk)
 {
        struct tls_context *tls_ctx = tls_get_ctx(sk);
-       struct tls_offload_context *ctx = tls_offload_ctx(tls_ctx);
+       struct tls_offload_context_tx *ctx = tls_offload_ctx_tx(tls_ctx);
 
        if (ctx->open_record)
                destroy_record(ctx->open_record);
 
 static int tls_push_record(struct sock *sk,
                           struct tls_context *ctx,
-                          struct tls_offload_context *offload_ctx,
+                          struct tls_offload_context_tx *offload_ctx,
                           struct tls_record_info *record,
                           struct page_frag *pfrag,
                           int flags,
        return tls_push_sg(sk, ctx, offload_ctx->sg_tx_data, 0, flags);
 }
 
-static int tls_create_new_record(struct tls_offload_context *offload_ctx,
+static int tls_create_new_record(struct tls_offload_context_tx *offload_ctx,
                                 struct page_frag *pfrag,
                                 size_t prepend_size)
 {
 }
 
 static int tls_do_allocation(struct sock *sk,
-                            struct tls_offload_context *offload_ctx,
+                            struct tls_offload_context_tx *offload_ctx,
                             struct page_frag *pfrag,
                             size_t prepend_size)
 {
                         unsigned char record_type)
 {
        struct tls_context *tls_ctx = tls_get_ctx(sk);
-       struct tls_offload_context *ctx = tls_offload_ctx(tls_ctx);
+       struct tls_offload_context_tx *ctx = tls_offload_ctx_tx(tls_ctx);
        int tls_push_record_flags = flags | MSG_SENDPAGE_NOTLAST;
        int more = flags & (MSG_SENDPAGE_NOTLAST | MSG_MORE);
        struct tls_record_info *record = ctx->open_record;
        return rc;
 }
 
-struct tls_record_info *tls_get_record(struct tls_offload_context *context,
+struct tls_record_info *tls_get_record(struct tls_offload_context_tx *context,
                                       u32 seq, u64 *p_record_sn)
 {
        u64 record_sn = context->hint_record_sn;
 {
        u16 nonce_size, tag_size, iv_size, rec_seq_size;
        struct tls_record_info *start_marker_record;
-       struct tls_offload_context *offload_ctx;
+       struct tls_offload_context_tx *offload_ctx;
        struct tls_crypto_info *crypto_info;
        struct net_device *netdev;
        char *iv, *rec_seq;
                goto out;
        }
 
-       offload_ctx = kzalloc(TLS_OFFLOAD_CONTEXT_SIZE, GFP_KERNEL);
+       offload_ctx = kzalloc(TLS_OFFLOAD_CONTEXT_SIZE_TX, GFP_KERNEL);
        if (!offload_ctx) {
                rc = -ENOMEM;
                goto free_marker_record;
 
 
 static int fill_sg_in(struct scatterlist *sg_in,
                      struct sk_buff *skb,
-                     struct tls_offload_context *ctx,
+                     struct tls_offload_context_tx *ctx,
                      u64 *rcd_sn,
                      s32 *sync_size,
                      int *resync_sgs)
                                   s32 sync_size, u64 rcd_sn)
 {
        int tcp_payload_offset = skb_transport_offset(skb) + tcp_hdrlen(skb);
-       struct tls_offload_context *ctx = tls_offload_ctx(tls_ctx);
+       struct tls_offload_context_tx *ctx = tls_offload_ctx_tx(tls_ctx);
        int payload_len = skb->len - tcp_payload_offset;
        void *buf, *iv, *aad, *dummy_buf;
        struct aead_request *aead_req;
 {
        int tcp_payload_offset = skb_transport_offset(skb) + tcp_hdrlen(skb);
        struct tls_context *tls_ctx = tls_get_ctx(sk);
-       struct tls_offload_context *ctx = tls_offload_ctx(tls_ctx);
+       struct tls_offload_context_tx *ctx = tls_offload_ctx_tx(tls_ctx);
        int payload_len = skb->len - tcp_payload_offset;
        struct scatterlist *sg_in, sg_out[3];
        struct sk_buff *nskb = NULL;
 }
 
 int tls_sw_fallback_init(struct sock *sk,
-                        struct tls_offload_context *offload_ctx,
+                        struct tls_offload_context_tx *offload_ctx,
                         struct tls_crypto_info *crypto_info)
 {
        const u8 *key;