On Thu, Nov 13, 2014 at 11:56:16AM -0800, Jarno Rajahalme wrote:
> classifier_remove() was recently changed to take a const struct
> cls_rule *. Make the corresponding change to classifier_replace() and
> classifier_insert(). This simplifies existing calling sites in
> ofproto.
>
> Signed-off-by: Jarno Rajahalme <[email protected]>
The construct &CONST_CAST(...)->member looks odd to me, how about this
incremental:
diff --git a/lib/classifier.c b/lib/classifier.c
index 4535f19..8fce7a9 100644
--- a/lib/classifier.c
+++ b/lib/classifier.c
@@ -602,7 +602,7 @@ classifier_replace(struct classifier *cls, const struct
cls_rule *rule)
/* No change in subtable's max priority or max count. */
/* Make rule visible to iterators. */
- rculist_replace(&CONST_CAST(struct cls_rule *, rule)->node,
+ rculist_replace(CONST_CAST(struct rculist *, &rule->node),
&old->node);
/* Return displaced rule. Caller is responsible for keeping it
@@ -613,7 +613,7 @@ classifier_replace(struct classifier *cls, const struct
cls_rule *rule)
/* Make rule visible to iterators. */
rculist_push_back(&subtable->rules_list,
- &CONST_CAST(struct cls_rule *, rule)->node);
+ CONST_CAST(struct rculist *, &rule->node));
/* Rule was added, not replaced. Update 'subtable's 'max_priority' and
* 'max_count', if necessary.
@@ -680,7 +680,7 @@ classifier_remove(struct classifier *cls, const struct
cls_rule *rule)
CONST_CAST(struct cls_rule *, rule)->cls_match = NULL;
/* Remove 'rule' from the subtable's rules list. */
- rculist_remove(&CONST_CAST(struct cls_rule *, rule)->node);
+ rculist_remove(CONST_CAST(struct rculist *, &rule->node));
INIT_CONTAINER(prev, rculist_back_protected(&cls_match->list), list);
INIT_CONTAINER(next, rculist_next(&cls_match->list), list);
Acked-by: Ben Pfaff <[email protected]>
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev