This may help to suppress warnings from know-it-all compilers, and it helps
to make the code clearer too.

Reported-by: Darrell Ball <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
---
Sorry, I didn't see v2 of the memset patch until I'd already applied v1.
Here's my version of this patch.

 lib/flow.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/lib/flow.c b/lib/flow.c
index 2b1ec4fed7ef..9d2ff93e89e4 100644
--- a/lib/flow.c
+++ b/lib/flow.c
@@ -2205,16 +2205,17 @@ void
 flow_pop_vlan(struct flow *flow, struct flow_wildcards *wc)
 {
     int n = flow_count_vlan_headers(flow);
-    if (n == 0) {
-        return;
+    if (n > 1) {
+        if (wc) {
+            memset(&wc->masks.vlans[1], 0xff,
+                   sizeof(union flow_vlan_hdr) * (n - 1));
+        }
+        memmove(&flow->vlans[0], &flow->vlans[1],
+                sizeof(union flow_vlan_hdr) * (n - 1));
     }
-    if (wc) {
-        memset(&wc->masks.vlans[1], 0xff,
-               sizeof(union flow_vlan_hdr) * (n - 1));
+    if (n > 0) {
+        memset(&flow->vlans[n - 1], 0, sizeof(union flow_vlan_hdr));
     }
-    memmove(&flow->vlans[0], &flow->vlans[1],
-            sizeof(union flow_vlan_hdr) * (n - 1));
-    memset(&flow->vlans[n - 1], 0, sizeof(union flow_vlan_hdr));
 }
 
 void
-- 
2.10.2

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to