[ovs-dev] [branch-2.7 4/4] ofproto: Move tun_table and vl_mff_map deletion.

Jarno Rajahalme jarno at ovn.org
Mon Apr 17 21:59:26 UTC 2017


Maybe apply this before 3/4?

Acked-by: Jarno Rajahalme <jarno at ovn.org>

  Jarno

> On Mar 15, 2017, at 4:01 PM, Joe Stringer <joe at ovn.org> wrote:
> 
> From: Yi-Hung Wei <yihung.wei at gmail.com>
> 
> In this patch, we move the tun_table and vl_mff_map deletion in
> ofproto_destory__() to be in the following order.
>    1. Delete all the flows.
>    2. Delete vl_mff_map.
>    3. Delete tun_table.
> The rationale behind this order is that a flow may use a variable length
> mf_field, and a variable length mf_field is defined by a TLV mapping
> in tun_table.
> 
> Signed-off-by: Yi-Hung Wei <yihung.wei at gmail.com>
> Signed-off-by: Joe Stringer <joe at ovn.org>
> ---
> ofproto/ofproto.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
> index b00a4af5e5c7..ceb020778d81 100644
> --- a/ofproto/ofproto.c
> +++ b/ofproto/ofproto.c
> @@ -1574,14 +1574,6 @@ ofproto_destroy__(struct ofproto *ofproto)
>     cmap_destroy(&ofproto->groups);
> 
>     hmap_remove(&all_ofprotos, &ofproto->hmap_node);
> -    tun_metadata_free(ovsrcu_get_protected(struct tun_table *,
> -                                           &ofproto->metadata_tab));
> -
> -    ovs_mutex_lock(&ofproto->vl_mff_map.mutex);
> -    mf_vl_mff_map_clear(&ofproto->vl_mff_map, true);
> -    ovs_mutex_unlock(&ofproto->vl_mff_map.mutex);
> -    cmap_destroy(&ofproto->vl_mff_map.cmap);
> -    ovs_mutex_destroy(&ofproto->vl_mff_map.mutex);
> 
>     free(ofproto->name);
>     free(ofproto->type);
> @@ -1600,6 +1592,14 @@ ofproto_destroy__(struct ofproto *ofproto)
>     }
>     free(ofproto->tables);
> 
> +    ovs_mutex_lock(&ofproto->vl_mff_map.mutex);
> +    mf_vl_mff_map_clear(&ofproto->vl_mff_map, true);
> +    ovs_mutex_unlock(&ofproto->vl_mff_map.mutex);
> +    cmap_destroy(&ofproto->vl_mff_map.cmap);
> +    ovs_mutex_destroy(&ofproto->vl_mff_map.mutex);
> +    tun_metadata_free(ovsrcu_get_protected(struct tun_table *,
> +                                           &ofproto->metadata_tab));
> +
>     ovs_assert(hindex_is_empty(&ofproto->cookies));
>     hindex_destroy(&ofproto->cookies);
> 
> -- 
> 2.11.1
> 



More information about the dev mailing list