dpif: Suppress spurious error from Valgrind.
authorBen Pfaff <blp@nicira.com>
Fri, 6 Mar 2009 01:00:46 +0000 (17:00 -0800)
committerBen Pfaff <blp@nicira.com>
Fri, 6 Mar 2009 01:00:46 +0000 (17:00 -0800)
lib/dpif.c

index 0f5908fa79d0f298387d8e8d595431be2979c2ee..aa75f58c4cb67984c7111c57d1dcc5de330dd615 100644 (file)
@@ -59,6 +59,7 @@
 #include "packets.h"
 #include "poll-loop.h"
 #include "util.h"
+#include "valgrind.h"
 
 #include "vlog.h"
 #define THIS_MODULE VLM_dpif
@@ -425,9 +426,13 @@ dpif_flow_list(const struct dpif *dpif, struct odp_flow flows[], size_t n,
 
     fv.flows = flows;
     fv.n_flows = n;
-    for (i = 0; i < n; i++) {
-        flows[i].actions = NULL;
-        flows[i].n_actions = 0;
+    if (RUNNING_ON_VALGRIND) {
+        memset(flows, 0, n * sizeof *flows);
+    } else {
+        for (i = 0; i < n; i++) {
+            flows[i].actions = NULL;
+            flows[i].n_actions = 0;
+        }
     }
     error = IOCTL(dpif, ODP_FLOW_LIST, &fv);
     *n_out = error ? 0 : fv.n_flows;