From: Jarno Rajahalme Date: Sun, 8 Sep 2013 01:27:07 +0000 (-0700) Subject: Delete meters in the right place. X-Git-Tag: sliver-openvswitch-2.0.90-1~14^2~36 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=717de9ff0351d4fd890b605816ddb0ce3eb3fd16;p=sliver-openvswitch.git Delete meters in the right place. Signed-off-by: Jarno Rajahalme Signed-off-by: Ben Pfaff --- diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index 9605baab2..942a440f9 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -1140,11 +1140,6 @@ ofproto_destroy__(struct ofproto *ofproto) ovs_assert(list_is_empty(&ofproto->pending)); ovs_assert(!ofproto->n_pending); - if (ofproto->meters) { - meter_delete(ofproto, 1, ofproto->meter_features.max_meters); - free(ofproto->meters); - } - delete_group(ofproto, OFPG_ALL); ovs_rwlock_destroy(&ofproto->groups_rwlock); hmap_destroy(&ofproto->groups); @@ -1186,6 +1181,13 @@ ofproto_destroy(struct ofproto *p) return; } + if (p->meters) { + meter_delete(p, 1, p->meter_features.max_meters); + p->meter_features.max_meters = 0; + free(p->meters); + p->meters = NULL; + } + ofproto_flush__(p); HMAP_FOR_EACH_SAFE (ofport, next_ofport, hmap_node, &p->ports) { ofport_destroy(ofport);