net: mscc: ocelot: use list_for_each_entry in ocelot_vcap_block_remove_filter
authorVladimir Oltean <vladimir.oltean@nxp.com>
Thu, 3 Mar 2022 14:01:20 +0000 (16:01 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 4 Mar 2022 09:21:23 +0000 (09:21 +0000)
Simplify ocelot_vcap_block_remove_filter by using list_for_each_entry
instead of list_for_each.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mscc/ocelot_vcap.c

index 852054d..0972c6d 100644 (file)
@@ -1195,18 +1195,16 @@ static void ocelot_vcap_block_remove_filter(struct ocelot *ocelot,
                                            struct ocelot_vcap_block *block,
                                            struct ocelot_vcap_filter *filter)
 {
-       struct ocelot_vcap_filter *tmp;
-       struct list_head *pos, *q;
+       struct ocelot_vcap_filter *tmp, *n;
 
-       list_for_each_safe(pos, q, &block->rules) {
-               tmp = list_entry(pos, struct ocelot_vcap_filter, list);
+       list_for_each_entry_safe(tmp, n, &block->rules, list) {
                if (ocelot_vcap_filter_equal(filter, tmp)) {
                        if (tmp->block_id == VCAP_IS2 &&
                            tmp->action.police_ena)
                                ocelot_vcap_policer_del(ocelot,
                                                        tmp->action.pol_ix);
 
-                       list_del(pos);
+                       list_del(&tmp->list);
                        kfree(tmp);
                }
        }