diff options
author | David S. Miller <davem@davemloft.net> | 2019-12-31 13:37:13 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-12-31 13:37:13 -0800 |
commit | 31d518f35e1a80268a24a855be9477eb458540ad (patch) | |
tree | 28494f630aede8f95d4ed2ebbfd14c222bd24fa6 /net/sched/cls_flower.c | |
parent | 9e860947d8d7a1504476ac49abfce90a4ce600f3 (diff) | |
parent | 738d2902773e30939a982c8df7a7f94293659810 (diff) | |
download | linux-stable-31d518f35e1a80268a24a855be9477eb458540ad.tar.gz linux-stable-31d518f35e1a80268a24a855be9477eb458540ad.tar.bz2 linux-stable-31d518f35e1a80268a24a855be9477eb458540ad.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Simple overlapping changes in bpf land wrt. bpf_helper_defs.h
handling.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/cls_flower.c')
-rw-r--r-- | net/sched/cls_flower.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 0d125de54285..b0f42e62dd76 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -2773,6 +2773,17 @@ static void fl_bind_class(void *fh, u32 classid, unsigned long cl) f->res.class = cl; } +static bool fl_delete_empty(struct tcf_proto *tp) +{ + struct cls_fl_head *head = fl_head_dereference(tp); + + spin_lock(&tp->lock); + tp->deleting = idr_is_empty(&head->handle_idr); + spin_unlock(&tp->lock); + + return tp->deleting; +} + static struct tcf_proto_ops cls_fl_ops __read_mostly = { .kind = "flower", .classify = fl_classify, @@ -2782,6 +2793,7 @@ static struct tcf_proto_ops cls_fl_ops __read_mostly = { .put = fl_put, .change = fl_change, .delete = fl_delete, + .delete_empty = fl_delete_empty, .walk = fl_walk, .reoffload = fl_reoffload, .hw_add = fl_hw_add, |