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
                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);
        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
                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);