From 717de9ff0351d4fd890b605816ddb0ce3eb3fd16 Mon Sep 17 00:00:00 2001 From: Jarno Rajahalme Date: Sat, 7 Sep 2013 18:27:07 -0700 Subject: [PATCH] Delete meters in the right place. Signed-off-by: Jarno Rajahalme Signed-off-by: Ben Pfaff --- ofproto/ofproto.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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); -- 2.43.0