flow: Fix struct flow size build assertion failure.
authorJesse Gross <jesse@nicira.com>
Wed, 3 Oct 2012 18:29:05 +0000 (11:29 -0700)
committerJesse Gross <jesse@nicira.com>
Wed, 3 Oct 2012 18:29:05 +0000 (11:29 -0700)
The new struct flow_tnl contains an extra four bytes of padding on
64-bit machines but we currently assert that the total struct flow
is a fixed size.  The size difference isn't actually a problem
because both are multiples of 4 and the build assertion is only
intended to remind people to update FLOW_WC_SEQ when new fields are
added.  This changes the assertion to fix just the non-tunnel field
size.

Suggested-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
lib/flow.h

index dcd77c2b5ed45f2b621e88173375c0fcd6b2bd4b..9388f20ab16eaebb4c85641881ce06d15a0674cb 100644 (file)
@@ -96,7 +96,8 @@ BUILD_ASSERT_DECL(sizeof(struct flow) % 4 == 0);
 #define FLOW_U32S (sizeof(struct flow) / 4)
 
 /* Remember to update FLOW_WC_SEQ when changing 'struct flow'. */
-BUILD_ASSERT_DECL(sizeof(struct flow) == 168 && FLOW_WC_SEQ == 17);
+BUILD_ASSERT_DECL(sizeof(struct flow) == sizeof(struct flow_tnl) + 144 &&
+                  FLOW_WC_SEQ == 17);
 
 /* Represents the metadata fields of struct flow. */
 struct flow_metadata {