Hi,

On Thu, Jan 07, 2021 at 09:30:48PM -0800, Saeed Mahameed wrote:
> @@ -1429,6 +1600,14 @@ mlx5_tc_ct_add_ft_cb(struct mlx5_tc_ct_priv *ct_priv, 
> u16 zone,
>       if (err)
>               goto err_insert;
>  
> +     nf_ct_zone_init(&ctzone, zone, NF_CT_DEFAULT_ZONE_DIR, 0);
> +     ft->tmpl = nf_ct_tmpl_alloc(&init_net, &ctzone, GFP_KERNEL);

I didn't test but I think this will add a hard dependency to
nf_conntrack_core and will cause conntrack to always be loaded by
mlx5_core, which is not good for some use cases.
nf_ct_tmpl_alloc() is defined in nf_conntrack_core.c.

762f926d6f19 ("net/sched: act_ct: Make tcf_ct_flow_table_restore_skb
inline") was done similarly to avoid this.

> +     if (!ft->tmpl)
> +             goto err_tmpl;
> +
> +     __set_bit(IPS_CONFIRMED_BIT, &ft->tmpl->status);
> +     nf_conntrack_get(&ft->tmpl->ct_general);
> +
>       err = nf_flow_table_offload_add_cb(ft->nf_ft,
>                                          mlx5_tc_ct_block_flow_offload, ft);
>       if (err)

Reply via email to