From: Jarno Rajahalme <jrajahalme@nicira.com>
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 <jrajahalme@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
---

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