Revert "net/mlx5e: fix double free of encap_header"
[platform/kernel/linux-rpi.git] / drivers / net / ethernet / mellanox / mlx5 / core / en / tc_tun.c
index 8bca696..00a04fd 100644 (file)
@@ -300,6 +300,9 @@ int mlx5e_tc_tun_create_header_ipv4(struct mlx5e_priv *priv,
        if (err)
                goto destroy_neigh_entry;
 
+       e->encap_size = ipv4_encap_size;
+       e->encap_header = encap_header;
+
        if (!(nud_state & NUD_VALID)) {
                neigh_event_send(attr.n, NULL);
                /* the encap entry will be made valid on neigh update event
@@ -319,8 +322,6 @@ int mlx5e_tc_tun_create_header_ipv4(struct mlx5e_priv *priv,
                goto destroy_neigh_entry;
        }
 
-       e->encap_size = ipv4_encap_size;
-       e->encap_header = encap_header;
        e->flags |= MLX5_ENCAP_ENTRY_VALID;
        mlx5e_rep_queue_neigh_stats_work(netdev_priv(attr.out_dev));
        mlx5e_route_lookup_ipv4_put(&attr);
@@ -567,6 +568,9 @@ int mlx5e_tc_tun_create_header_ipv6(struct mlx5e_priv *priv,
        if (err)
                goto destroy_neigh_entry;
 
+       e->encap_size = ipv6_encap_size;
+       e->encap_header = encap_header;
+
        if (!(nud_state & NUD_VALID)) {
                neigh_event_send(attr.n, NULL);
                /* the encap entry will be made valid on neigh update event
@@ -586,8 +590,6 @@ int mlx5e_tc_tun_create_header_ipv6(struct mlx5e_priv *priv,
                goto destroy_neigh_entry;
        }
 
-       e->encap_size = ipv6_encap_size;
-       e->encap_header = encap_header;
        e->flags |= MLX5_ENCAP_ENTRY_VALID;
        mlx5e_rep_queue_neigh_stats_work(netdev_priv(attr.out_dev));
        mlx5e_route_lookup_ipv6_put(&attr);