]> git.baikalelectronics.ru Git - kernel.git/commit
net: sched: set dedicated tcf_walker flag when tp is empty
authorVlad Buslov <vladbu@mellanox.com>
Mon, 25 Feb 2019 15:38:31 +0000 (17:38 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Feb 2019 18:18:17 +0000 (10:18 -0800)
commit578b1f79bca37466e5c69c4fb9fca3fefb5044c4
tree81e76c70ae94703bfa4e235ea6ec5e888606a5e8
parent4140998bda3699d3acfd8dba55f7ee514deb1d60
net: sched: set dedicated tcf_walker flag when tp is empty

Using tcf_walker->stop flag to determine when tcf_walker->fn() was called
at least once is unreliable. Some classifiers set 'stop' flag on error
before calling walker callback, other classifiers used to call it with NULL
filter pointer when empty. In order to prevent further regressions, extend
tcf_walker structure with dedicated 'nonempty' flag. Set this flag in
tcf_walker->fn() implementation that is used to check if classifier has
filters configured.

Fixes: 54426eaf5a5f ("net: sched: refactor tp insert/delete for concurrent execution")
Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Suggested-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/pkt_cls.h
net/sched/cls_api.c