All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/2] misc TC/flower changes
@ 2016-11-01 14:08 Roi Dayan
  2016-11-01 14:08 ` [PATCH net-next 1/2] net/sched: cls_flower: add missing unbind call when destroying flows Roi Dayan
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Roi Dayan @ 2016-11-01 14:08 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, Jiri Pirko, Roi Dayan

This series includes two small changes to the TC flower classifier.

Thanks,

Roi

Roi Dayan (2):
  net/sched: cls_flower: add missing unbind call when destroying flows
  net/sched: cls_flower: merge filter delete/destroy common code

 net/sched/cls_flower.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH net-next 1/2] net/sched: cls_flower: add missing unbind call when destroying flows
  2016-11-01 14:08 [PATCH net-next 0/2] misc TC/flower changes Roi Dayan
@ 2016-11-01 14:08 ` Roi Dayan
  2016-11-01 14:08 ` [PATCH net-next 2/2] net/sched: cls_flower: merge filter delete/destroy common code Roi Dayan
  2016-11-02 19:01 ` [PATCH net-next 0/2] misc TC/flower changes David Miller
  2 siblings, 0 replies; 6+ messages in thread
From: Roi Dayan @ 2016-11-01 14:08 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, Jiri Pirko, Roi Dayan

tcf_unbind was called in fl_delete but was missing in fl_destroy when
force deleting flows.

Fixes: 77b9900ef53a ('tc: introduce Flower classifier')
Signed-off-by: Roi Dayan <roid@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
---
 net/sched/cls_flower.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c
index f6f40fb..a5f6370 100644
--- a/net/sched/cls_flower.c
+++ b/net/sched/cls_flower.c
@@ -280,6 +280,7 @@ static bool fl_destroy(struct tcf_proto *tp, bool force)
 	list_for_each_entry_safe(f, next, &head->filters, list) {
 		fl_hw_destroy_filter(tp, (unsigned long)f);
 		list_del_rcu(&f->list);
+		tcf_unbind_filter(tp, &f->res);
 		call_rcu(&f->rcu, fl_destroy_filter);
 	}
 	RCU_INIT_POINTER(tp->root, NULL);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net-next 2/2] net/sched: cls_flower: merge filter delete/destroy common code
  2016-11-01 14:08 [PATCH net-next 0/2] misc TC/flower changes Roi Dayan
  2016-11-01 14:08 ` [PATCH net-next 1/2] net/sched: cls_flower: add missing unbind call when destroying flows Roi Dayan
@ 2016-11-01 14:08 ` Roi Dayan
  2016-11-01 14:23   ` Jiri Pirko
  2016-11-01 16:17   ` Sergei Shtylyov
  2016-11-02 19:01 ` [PATCH net-next 0/2] misc TC/flower changes David Miller
  2 siblings, 2 replies; 6+ messages in thread
From: Roi Dayan @ 2016-11-01 14:08 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, Jiri Pirko, Roi Dayan

Move common code from fl_delete and fl_detroy to __fl_delete.

Signed-off-by: Roi Dayan <roid@mellanox.com>
---
 net/sched/cls_flower.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c
index a5f6370..a8fb1ca 100644
--- a/net/sched/cls_flower.c
+++ b/net/sched/cls_flower.c
@@ -269,6 +269,14 @@ static void fl_hw_update_stats(struct tcf_proto *tp, struct cls_fl_filter *f)
 	dev->netdev_ops->ndo_setup_tc(dev, tp->q->handle, tp->protocol, &tc);
 }
 
+static void __fl_delete(struct tcf_proto *tp, struct cls_fl_filter *f)
+{
+	list_del_rcu(&f->list);
+	fl_hw_destroy_filter(tp, (unsigned long)f);
+	tcf_unbind_filter(tp, &f->res);
+	call_rcu(&f->rcu, fl_destroy_filter);
+}
+
 static bool fl_destroy(struct tcf_proto *tp, bool force)
 {
 	struct cls_fl_head *head = rtnl_dereference(tp->root);
@@ -277,12 +285,8 @@ static bool fl_destroy(struct tcf_proto *tp, bool force)
 	if (!force && !list_empty(&head->filters))
 		return false;
 
-	list_for_each_entry_safe(f, next, &head->filters, list) {
-		fl_hw_destroy_filter(tp, (unsigned long)f);
-		list_del_rcu(&f->list);
-		tcf_unbind_filter(tp, &f->res);
-		call_rcu(&f->rcu, fl_destroy_filter);
-	}
+	list_for_each_entry_safe(f, next, &head->filters, list)
+		__fl_delete(tp, f);
 	RCU_INIT_POINTER(tp->root, NULL);
 	if (head->mask_assigned)
 		rhashtable_destroy(&head->ht);
@@ -742,10 +746,7 @@ static int fl_delete(struct tcf_proto *tp, unsigned long arg)
 
 	rhashtable_remove_fast(&head->ht, &f->ht_node,
 			       head->ht_params);
-	list_del_rcu(&f->list);
-	fl_hw_destroy_filter(tp, (unsigned long)f);
-	tcf_unbind_filter(tp, &f->res);
-	call_rcu(&f->rcu, fl_destroy_filter);
+	__fl_delete(tp, f);
 	return 0;
 }
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 2/2] net/sched: cls_flower: merge filter delete/destroy common code
  2016-11-01 14:08 ` [PATCH net-next 2/2] net/sched: cls_flower: merge filter delete/destroy common code Roi Dayan
@ 2016-11-01 14:23   ` Jiri Pirko
  2016-11-01 16:17   ` Sergei Shtylyov
  1 sibling, 0 replies; 6+ messages in thread
From: Jiri Pirko @ 2016-11-01 14:23 UTC (permalink / raw)
  To: Roi Dayan; +Cc: David S. Miller, netdev, Jiri Pirko

Tue, Nov 01, 2016 at 03:08:29PM CET, roid@mellanox.com wrote:
>Move common code from fl_delete and fl_detroy to __fl_delete.
>
>Signed-off-by: Roi Dayan <roid@mellanox.com>

Acked-by: Jiri Pirko <jiri@mellanox.com>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 2/2] net/sched: cls_flower: merge filter delete/destroy common code
  2016-11-01 14:08 ` [PATCH net-next 2/2] net/sched: cls_flower: merge filter delete/destroy common code Roi Dayan
  2016-11-01 14:23   ` Jiri Pirko
@ 2016-11-01 16:17   ` Sergei Shtylyov
  1 sibling, 0 replies; 6+ messages in thread
From: Sergei Shtylyov @ 2016-11-01 16:17 UTC (permalink / raw)
  To: Roi Dayan, David S. Miller; +Cc: netdev, Jiri Pirko

On 11/01/2016 05:08 PM, Roi Dayan wrote:

> Move common code from fl_delete and fl_detroy to __fl_delete.

    fl_destroy().


> Signed-off-by: Roi Dayan <roid@mellanox.com>
[...]

MBR, Sergei

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 0/2] misc TC/flower changes
  2016-11-01 14:08 [PATCH net-next 0/2] misc TC/flower changes Roi Dayan
  2016-11-01 14:08 ` [PATCH net-next 1/2] net/sched: cls_flower: add missing unbind call when destroying flows Roi Dayan
  2016-11-01 14:08 ` [PATCH net-next 2/2] net/sched: cls_flower: merge filter delete/destroy common code Roi Dayan
@ 2016-11-02 19:01 ` David Miller
  2 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2016-11-02 19:01 UTC (permalink / raw)
  To: roid; +Cc: netdev, jiri

From: Roi Dayan <roid@mellanox.com>
Date: Tue,  1 Nov 2016 16:08:27 +0200

> This series includes two small changes to the TC flower classifier.

Series applied, thanks!

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-11-02 19:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-01 14:08 [PATCH net-next 0/2] misc TC/flower changes Roi Dayan
2016-11-01 14:08 ` [PATCH net-next 1/2] net/sched: cls_flower: add missing unbind call when destroying flows Roi Dayan
2016-11-01 14:08 ` [PATCH net-next 2/2] net/sched: cls_flower: merge filter delete/destroy common code Roi Dayan
2016-11-01 14:23   ` Jiri Pirko
2016-11-01 16:17   ` Sergei Shtylyov
2016-11-02 19:01 ` [PATCH net-next 0/2] misc TC/flower changes David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.