e9962dc
From 7e0f69b581705064e2fd767426c5227150a31e6f Mon Sep 17 00:00:00 2001
e9962dc
From: Ian Stokes <ian.stokes@intel.com>
e9962dc
Date: Wed, 21 Mar 2018 20:11:22 +0000
e9962dc
Subject: [PATCH 2/2] lib/tc: Fix sparse warnings.
e9962dc
e9962dc
"sparse" complains with the warning 'incorrect type in argument 1
e9962dc
(different base types)' in function nl_parse_flower_ip when parsing a key
e9962dc
flag and in function nl_msg_put_flower_options when writing the key
e9962dc
flag. Fix this by using network byte order when reading and writing key
e9962dc
flags to netlink messages.
e9962dc
e9962dc
Fixes: 83e86606 ("netdev-tc-offloads: Add support for IP fragmentation")
e9962dc
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
e9962dc
Signed-off-by: Ben Pfaff <blp@ovn.org>
e9962dc
Acked-by: Roi Dayan <roid@mellanox.com>
e9962dc
---
e9962dc
 lib/tc.c | 9 +++++----
e9962dc
 1 file changed, 5 insertions(+), 4 deletions(-)
e9962dc
e9962dc
diff --git a/lib/tc.c b/lib/tc.c
e9962dc
index c446d8407..6daa44710 100644
e9962dc
--- a/lib/tc.c
e9962dc
+++ b/lib/tc.c
e9962dc
@@ -377,8 +377,9 @@ nl_parse_flower_ip(struct nlattr **attrs, struct tc_flower *flower) {
e9962dc
     }
e9962dc
 
e9962dc
     if (attrs[TCA_FLOWER_KEY_FLAGS_MASK]) {
e9962dc
-        key->flags = ntohl(nl_attr_get_u32(attrs[TCA_FLOWER_KEY_FLAGS]));
e9962dc
-        mask->flags = ntohl(nl_attr_get_u32(attrs[TCA_FLOWER_KEY_FLAGS_MASK]));
e9962dc
+        key->flags = ntohl(nl_attr_get_be32(attrs[TCA_FLOWER_KEY_FLAGS]));
e9962dc
+        mask->flags =
e9962dc
+                ntohl(nl_attr_get_be32(attrs[TCA_FLOWER_KEY_FLAGS_MASK]));
e9962dc
     }
e9962dc
 
e9962dc
     if (attrs[TCA_FLOWER_KEY_IPV4_SRC_MASK]) {
e9962dc
@@ -1503,9 +1504,9 @@ nl_msg_put_flower_options(struct ofpbuf *request, struct tc_flower *flower)
e9962dc
         }
e9962dc
 
e9962dc
         if (flower->mask.flags) {
e9962dc
-            nl_msg_put_u32(request, TCA_FLOWER_KEY_FLAGS,
e9962dc
+            nl_msg_put_be32(request, TCA_FLOWER_KEY_FLAGS,
e9962dc
                            htonl(flower->key.flags));
e9962dc
-            nl_msg_put_u32(request, TCA_FLOWER_KEY_FLAGS_MASK,
e9962dc
+            nl_msg_put_be32(request, TCA_FLOWER_KEY_FLAGS_MASK,
e9962dc
                            htonl(flower->mask.flags));
e9962dc
         }
e9962dc
 
e9962dc
-- 
e9962dc
2.17.0
e9962dc