static u8 mlx5e_build_async_icosq_log_wq_sz(struct mlx5_core_dev *mdev)
 {
-       if (mlx5_accel_is_ktls_rx(mdev))
+       if (mlx5e_accel_is_ktls_rx(mdev))
                return MLX5E_PARAMS_DEFAULT_LOG_SQ_SIZE;
 
        return MLX5E_PARAMS_MINIMUM_LOG_SQ_SIZE;
 
        mlx5e_build_sq_param_common(mdev, param);
        param->stop_room = mlx5e_stop_room_for_wqe(1); /* for XSK NOP */
-       param->is_tls = mlx5_accel_is_ktls_rx(mdev);
+       param->is_tls = mlx5e_accel_is_ktls_rx(mdev);
        if (param->is_tls)
                param->stop_room += mlx5e_stop_room_for_wqe(1); /* for TLS RX resync NOP */
        MLX5_SET(sqc, sqc, reg_umr, MLX5_CAP_ETH(mdev, reg_umr_sq));
 
        struct net_device *netdev = priv->netdev;
        struct mlx5_core_dev *mdev = priv->mdev;
 
-       if (mlx5_accel_is_ktls_tx(mdev)) {
+       if (!mlx5e_accel_is_ktls_tx(mdev) && !mlx5e_accel_is_ktls_rx(mdev))
+               return;
+
+       if (mlx5e_accel_is_ktls_tx(mdev)) {
                netdev->hw_features |= NETIF_F_HW_TLS_TX;
                netdev->features    |= NETIF_F_HW_TLS_TX;
        }
 
-       if (mlx5_accel_is_ktls_rx(mdev))
+       if (mlx5e_accel_is_ktls_rx(mdev))
                netdev->hw_features |= NETIF_F_HW_TLS_RX;
 
        netdev->tlsdev_ops = &mlx5e_ktls_ops;
 {
        int err;
 
-       if (!mlx5_accel_is_ktls_rx(priv->mdev))
+       if (!mlx5e_accel_is_ktls_rx(priv->mdev))
                return 0;
 
        priv->tls->rx_wq = create_singlethread_workqueue("mlx5e_tls_rx");
 
 void mlx5e_ktls_cleanup_rx(struct mlx5e_priv *priv)
 {
-       if (!mlx5_accel_is_ktls_rx(priv->mdev))
+       if (!mlx5e_accel_is_ktls_rx(priv->mdev))
                return;
 
        if (priv->netdev->features & NETIF_F_HW_TLS_RX)
 
 struct mlx5e_ktls_resync_resp *
 mlx5e_ktls_rx_resync_create_resp_list(void);
 void mlx5e_ktls_rx_resync_destroy_resp_list(struct mlx5e_ktls_resync_resp *resp_list);
+
+static inline bool mlx5e_accel_is_ktls_tx(struct mlx5_core_dev *mdev)
+{
+       return !is_kdump_kernel() &&
+               mlx5_accel_is_ktls_tx(mdev);
+}
+
+static inline bool mlx5e_accel_is_ktls_rx(struct mlx5_core_dev *mdev)
+{
+       return !is_kdump_kernel() &&
+               mlx5_accel_is_ktls_rx(mdev);
+}
+
+static inline bool mlx5e_accel_is_ktls_device(struct mlx5_core_dev *mdev)
+{
+       return !is_kdump_kernel() &&
+               mlx5_accel_is_ktls_device(mdev);
+}
+
 #else
 
 static inline void mlx5e_ktls_build_netdev(struct mlx5e_priv *priv)
 
 static inline void
 mlx5e_ktls_rx_resync_destroy_resp_list(struct mlx5e_ktls_resync_resp *resp_list) {}
+
+static inline bool mlx5e_accel_is_ktls_tx(struct mlx5_core_dev *mdev) { return false; }
+static inline bool mlx5e_accel_is_ktls_rx(struct mlx5_core_dev *mdev) { return false; }
+static inline bool mlx5e_accel_is_ktls_device(struct mlx5_core_dev *mdev) { return false; }
+
 #endif
 
 #endif /* __MLX5E_TLS_H__ */
 
        return nfrags + DIV_ROUND_UP(sync_len, MLX5E_SW2HW_MTU(params, params->sw_mtu));
 }
 
-u16 mlx5e_ktls_get_stop_room(struct mlx5e_params *params)
+u16 mlx5e_ktls_get_stop_room(struct mlx5_core_dev *mdev, struct mlx5e_params *params)
 {
        u16 num_dumps, stop_room = 0;
 
+       if (!mlx5e_accel_is_ktls_tx(mdev))
+               return 0;
+
        num_dumps = mlx5e_ktls_dumps_num_wqes(params, MAX_SKB_FRAGS, TLS_MAX_PAYLOAD_SIZE);
 
        stop_room += mlx5e_stop_room_for_wqe(MLX5E_TLS_SET_STATIC_PARAMS_WQEBBS);
 
        u32 tls_tisn;
 };
 
-u16 mlx5e_ktls_get_stop_room(struct mlx5e_params *params);
+u16 mlx5e_ktls_get_stop_room(struct mlx5_core_dev *mdev, struct mlx5e_params *params);
 
 bool mlx5e_ktls_handle_tx_skb(struct tls_context *tls_ctx, struct mlx5e_txqsq *sq,
                              struct sk_buff *skb, int datalen,
 
        struct net_device *netdev = priv->netdev;
        u32 caps;
 
-       if (mlx5_accel_is_ktls_device(priv->mdev)) {
+       if (mlx5e_accel_is_ktls_device(priv->mdev)) {
                mlx5e_ktls_build_netdev(priv);
                return;
        }
 
        /* FPGA */
-       if (!mlx5_accel_is_tls_device(priv->mdev))
+       if (!mlx5e_accel_is_tls_device(priv->mdev))
                return;
 
        caps = mlx5_accel_tls_device_caps(priv->mdev);
 {
        struct mlx5e_tls *tls;
 
-       if (!mlx5_accel_is_tls_device(priv->mdev))
+       if (!mlx5e_accel_is_tls_device(priv->mdev))
                return 0;
 
        tls = kzalloc(sizeof(*tls), GFP_KERNEL);
 
 int mlx5e_tls_get_strings(struct mlx5e_priv *priv, uint8_t *data);
 int mlx5e_tls_get_stats(struct mlx5e_priv *priv, u64 *data);
 
+static inline bool mlx5e_accel_is_tls_device(struct mlx5_core_dev *mdev)
+{
+       return !is_kdump_kernel() &&
+               mlx5_accel_is_tls_device(mdev);
+}
+
 #else
 
 static inline void mlx5e_tls_build_netdev(struct mlx5e_priv *priv)
 {
-       if (mlx5_accel_is_ktls_device(priv->mdev))
+       if (!is_kdump_kernel() &&
+           mlx5_accel_is_ktls_device(priv->mdev))
                mlx5e_ktls_build_netdev(priv);
 }
 
 static inline int mlx5e_tls_get_count(struct mlx5e_priv *priv) { return 0; }
 static inline int mlx5e_tls_get_strings(struct mlx5e_priv *priv, uint8_t *data) { return 0; }
 static inline int mlx5e_tls_get_stats(struct mlx5e_priv *priv, u64 *data) { return 0; }
+static inline bool mlx5e_accel_is_tls_device(struct mlx5_core_dev *mdev) { return false; }
 
 #endif
 
 
        if (WARN_ON_ONCE(tls_ctx->netdev != netdev))
                goto err_out;
 
-       if (mlx5_accel_is_ktls_tx(sq->mdev))
+       if (mlx5e_accel_is_ktls_tx(sq->mdev))
                return mlx5e_ktls_handle_tx_skb(tls_ctx, sq, skb, datalen, state);
 
        /* FPGA */
 
 u16 mlx5e_tls_get_stop_room(struct mlx5_core_dev *mdev, struct mlx5e_params *params)
 {
-       if (!mlx5_accel_is_tls_device(mdev))
+       if (!mlx5e_accel_is_tls_device(mdev))
                return 0;
 
-       if (mlx5_accel_is_ktls_device(mdev))
-               return mlx5e_ktls_get_stop_room(params);
+       if (mlx5e_accel_is_ktls_device(mdev))
+               return mlx5e_ktls_get_stop_room(mdev, params);
 
        /* FPGA */
        /* Resync SKB. */
 
 {
        if (!priv->tls)
                return NULL;
-       if (mlx5_accel_is_ktls_device(priv->mdev))
+       if (mlx5e_accel_is_ktls_device(priv->mdev))
                return mlx5e_ktls_sw_stats_desc;
        return mlx5e_tls_sw_stats_desc;
 }
 {
        if (!priv->tls)
                return 0;
-       if (mlx5_accel_is_ktls_device(priv->mdev))
+       if (mlx5e_accel_is_ktls_device(priv->mdev))
                return ARRAY_SIZE(mlx5e_ktls_sw_stats_desc);
        return ARRAY_SIZE(mlx5e_tls_sw_stats_desc);
 }
 
        if (err)
                goto err_destroy_rq;
 
-       if (mlx5e_is_tls_on(rq->priv) && !mlx5_accel_is_ktls_device(mdev))
+       if (mlx5e_is_tls_on(rq->priv) && !mlx5e_accel_is_ktls_device(mdev))
                __set_bit(MLX5E_RQ_STATE_FPGA_TLS, &rq->state); /* must be FPGA */
 
        if (MLX5_CAP_ETH(mdev, cqe_checksum_full))