[ovs-dev] [threaded-learning v2 24/25] ofproto: Remove redundant cls parameter from a few functions.

Ethan Jackson ethan at nicira.com
Fri Sep 13 00:08:43 UTC 2013


Acked-by: Ethan Jackson <ethan at nicira.com>


On Thu, Sep 12, 2013 at 12:39 AM, Ben Pfaff <blp at nicira.com> wrote:
> Previously this parameter was useful for Clang locking annotations
> but it isn't actually a locking requirement anymore, so remove
> the parameter.
>
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> ---
>  ofproto/ofproto-dpif.c     |    2 +-
>  ofproto/ofproto-provider.h |    3 +--
>  ofproto/ofproto.c          |   33 +++++++++++----------------------
>  3 files changed, 13 insertions(+), 25 deletions(-)
>
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index edad2ba..7cd9d44 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -1423,7 +1423,7 @@ destruct(struct ofproto *ofproto_)
>          cls_cursor_init(&cursor, &table->cls, NULL);
>          ovs_rwlock_unlock(&table->cls.rwlock);
>          CLS_CURSOR_FOR_EACH_SAFE (rule, next_rule, up.cr, &cursor) {
> -            ofproto_rule_delete(&ofproto->up, &table->cls, &rule->up);
> +            ofproto_rule_delete(&ofproto->up, &rule->up);
>          }
>      }
>
> diff --git a/ofproto/ofproto-provider.h b/ofproto/ofproto-provider.h
> index a24b95c..8fa9d58 100644
> --- a/ofproto/ofproto-provider.h
> +++ b/ofproto/ofproto-provider.h
> @@ -457,8 +457,7 @@ rule_from_cls_rule(const struct cls_rule *cls_rule)
>
>  void ofproto_rule_expire(struct rule *rule, uint8_t reason)
>      OVS_REQUIRES(ofproto_mutex);
> -void ofproto_rule_delete(struct ofproto *, struct classifier *cls,
> -                         struct rule *)
> +void ofproto_rule_delete(struct ofproto *, struct rule *)
>      OVS_EXCLUDED(ofproto_mutex);
>  void ofproto_rule_reduce_timeouts(struct rule *rule, uint16_t idle_timeout,
>                                    uint16_t hard_timeout)
> diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
> index 7f25422..05c65ec 100644
> --- a/ofproto/ofproto.c
> +++ b/ofproto/ofproto.c
> @@ -154,8 +154,7 @@ static void oftable_enable_eviction(struct oftable *,
>                                      size_t n_fields);
>
>  static void oftable_remove_rule(struct rule *rule) OVS_REQUIRES(ofproto_mutex);
> -static void oftable_remove_rule__(struct ofproto *ofproto,
> -                                  struct classifier *cls, struct rule *rule)
> +static void oftable_remove_rule__(struct ofproto *, struct rule *)
>      OVS_REQUIRES(ofproto_mutex);
>  static void oftable_insert_rule(struct rule *);
>
> @@ -1130,14 +1129,12 @@ ofproto_get_snoops(const struct ofproto *ofproto, struct sset *snoops)
>  }
>
>  static void
> -ofproto_rule_delete__(struct ofproto *ofproto, struct classifier *cls,
> -                    struct rule *rule)
> +ofproto_rule_delete__(struct ofproto *ofproto, struct rule *rule)
>      OVS_REQUIRES(ofproto_mutex)
>  {
>      struct ofopgroup *group;
>
>      ovs_assert(!rule->pending);
> -    ovs_assert(cls == &ofproto->tables[rule->table_id].cls);
>
>      group = ofopgroup_create_unattached(ofproto);
>      delete_flow__(rule, group, OFPRR_DELETE);
> @@ -1152,24 +1149,19 @@ ofproto_rule_delete__(struct ofproto *ofproto, struct classifier *cls,
>   * ofproto implementation.
>   *
>   * This function implements steps 4.4 and 4.5 in the section titled "Rule Life
> - * Cycle" in ofproto-provider.h.
> -
> - * The 'cls' argument is redundant (it is &ofproto->tables[rule->table_id].cls)
> - * but it allows Clang to do better checking. */
> + * Cycle" in ofproto-provider.h. */
>  void
> -ofproto_rule_delete(struct ofproto *ofproto, struct classifier *cls,
> -                    struct rule *rule)
> +ofproto_rule_delete(struct ofproto *ofproto, struct rule *rule)
>      OVS_EXCLUDED(ofproto_mutex)
>  {
>      struct ofopgroup *group;
>
>      ovs_mutex_lock(&ofproto_mutex);
>      ovs_assert(!rule->pending);
> -    ovs_assert(cls == &ofproto->tables[rule->table_id].cls);
>
>      group = ofopgroup_create_unattached(ofproto);
>      ofoperation_create(group, rule, OFOPERATION_DELETE, OFPRR_DELETE);
> -    oftable_remove_rule__(ofproto, cls, rule);
> +    oftable_remove_rule__(ofproto, rule);
>      ofproto->ofproto_class->rule_delete(rule);
>      ofopgroup_submit(group);
>
> @@ -1200,7 +1192,7 @@ ofproto_flush__(struct ofproto *ofproto)
>          ovs_rwlock_unlock(&table->cls.rwlock);
>          CLS_CURSOR_FOR_EACH_SAFE (rule, next_rule, cr, &cursor) {
>              if (!rule->pending) {
> -                ofproto_rule_delete__(ofproto, &table->cls, rule);
> +                ofproto_rule_delete__(ofproto, rule);
>              }
>          }
>      }
> @@ -4226,13 +4218,12 @@ ofproto_rule_expire(struct rule *rule, uint8_t reason)
>      OVS_REQUIRES(ofproto_mutex)
>  {
>      struct ofproto *ofproto = rule->ofproto;
> -    struct classifier *cls = &ofproto->tables[rule->table_id].cls;
>
>      ovs_assert(reason == OFPRR_HARD_TIMEOUT || reason == OFPRR_IDLE_TIMEOUT
>                 || reason == OFPRR_DELETE || reason == OFPRR_GROUP_DELETE);
>
>      ofproto_rule_send_removed(rule, reason);
> -    ofproto_rule_delete__(ofproto, cls, rule);
> +    ofproto_rule_delete__(ofproto, rule);
>  }
>
>  /* Reduces '*timeout' to no more than 'max'.  A value of zero in either case
> @@ -6488,10 +6479,11 @@ oftable_enable_eviction(struct oftable *table,
>
>  /* Removes 'rule' from the oftable that contains it. */
>  static void
> -oftable_remove_rule__(struct ofproto *ofproto, struct classifier *cls,
> -                      struct rule *rule)
> +oftable_remove_rule__(struct ofproto *ofproto, struct rule *rule)
>      OVS_REQUIRES(ofproto_mutex)
>  {
> +    struct classifier *cls = &ofproto->tables[rule->table_id].cls;
> +
>      ovs_rwlock_wrlock(&cls->rwlock);
>      classifier_remove(cls, CONST_CAST(struct cls_rule *, &rule->cr));
>      ovs_rwlock_unlock(&cls->rwlock);
> @@ -6512,10 +6504,7 @@ static void
>  oftable_remove_rule(struct rule *rule)
>      OVS_REQUIRES(ofproto_mutex)
>  {
> -    struct ofproto *ofproto = rule->ofproto;
> -    struct oftable *table = &ofproto->tables[rule->table_id];
> -
> -    oftable_remove_rule__(ofproto, &table->cls, rule);
> +    oftable_remove_rule__(rule->ofproto, rule);
>  }
>
>  /* Inserts 'rule' into its oftable, which must not already contain any rule for
> --
> 1.7.10.4
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list