ct_priv->post_act = post_act;
        mutex_init(&ct_priv->control_lock);
-       rhashtable_init(&ct_priv->zone_ht, &zone_params);
-       rhashtable_init(&ct_priv->ct_tuples_ht, &tuples_ht_params);
-       rhashtable_init(&ct_priv->ct_tuples_nat_ht, &tuples_nat_ht_params);
+       if (rhashtable_init(&ct_priv->zone_ht, &zone_params))
+               goto err_ct_zone_ht;
+       if (rhashtable_init(&ct_priv->ct_tuples_ht, &tuples_ht_params))
+               goto err_ct_tuples_ht;
+       if (rhashtable_init(&ct_priv->ct_tuples_nat_ht, &tuples_nat_ht_params))
+               goto err_ct_tuples_nat_ht;
 
        return ct_priv;
 
+err_ct_tuples_nat_ht:
+       rhashtable_destroy(&ct_priv->ct_tuples_ht);
+err_ct_tuples_ht:
+       rhashtable_destroy(&ct_priv->zone_ht);
+err_ct_zone_ht:
 err_ct_nat_tbl:
        mlx5_chains_destroy_global_table(chains, ct_priv->ct);
 err_ct_tbl: