Every piece of code that may need to change whenever struct flow or struct flow_wildcards changes, but might easily get overlooked, should have a build assertion on the value of FLOW_WC_SEQ, but these functions did not.
Signed-off-by: Ben Pfaff <b...@nicira.com> --- lib/flow.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/lib/flow.c b/lib/flow.c index 29714b1..dc2bb1c 100644 --- a/lib/flow.c +++ b/lib/flow.c @@ -699,6 +699,8 @@ flow_wildcards_combine(struct flow_wildcards *dst, { int i; + BUILD_ASSERT_DECL(FLOW_WC_SEQ == 7); + dst->wildcards = src1->wildcards | src2->wildcards; dst->tun_id_mask = src1->tun_id_mask & src2->tun_id_mask; dst->nw_src_mask = src1->nw_src_mask & src2->nw_src_mask; @@ -732,6 +734,8 @@ flow_wildcards_equal(const struct flow_wildcards *a, { int i; + BUILD_ASSERT_DECL(FLOW_WC_SEQ == 7); + if (a->wildcards != b->wildcards || a->tun_id_mask != b->tun_id_mask || a->nw_src_mask != b->nw_src_mask @@ -760,6 +764,8 @@ flow_wildcards_has_extra(const struct flow_wildcards *a, int i; struct in6_addr ipv6_masked; + BUILD_ASSERT_DECL(FLOW_WC_SEQ == 7); + for (i = 0; i < FLOW_N_REGS; i++) { if ((a->reg_masks[i] & b->reg_masks[i]) != b->reg_masks[i]) { return true; -- 1.7.2.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev