]> git.baikalelectronics.ru Git - kernel.git/commit
net: sched: extend Qdisc with rcu
authorVlad Buslov <vladbu@mellanox.com>
Mon, 24 Sep 2018 16:22:51 +0000 (19:22 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Sep 2018 03:17:35 +0000 (20:17 -0700)
commit3f4d5a8e2c1d489e1e87204db5b3545af8dd51a4
tree4d1cf3e61e9262e1bb3436e6c24735753e19d00a
parent43d8d72ad7e9d953c336fddd9622e8d8f66282b0
net: sched: extend Qdisc with rcu

Currently, Qdisc API functions assume that users have rtnl lock taken. To
implement rtnl unlocked classifiers update interface, Qdisc API must be
extended with functions that do not require rtnl lock.

Extend Qdisc structure with rcu. Implement special version of put function
qdisc_put_unlocked() that is called without rtnl lock taken. This function
only takes rtnl lock if Qdisc reference counter reached zero and is
intended to be used as optimization.

Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/rtnetlink.h
include/net/pkt_sched.h
include/net/sch_generic.h
net/sched/sch_api.c
net/sched/sch_generic.c