aboutsummaryrefslogtreecommitdiffstats
path: root/net/smc
diff options
context:
space:
mode:
authorVlad Buslov <vladbu@mellanox.com>2019-02-11 10:55:38 +0200
committerDavid S. Miller <davem@davemloft.net>2019-02-12 13:41:32 -0500
commited76f5edccc98fa66f2337f0b3b255d6e1a568b7 (patch)
tree408b13681d6f13914e70783a7d345a560242a219 /net/smc
parentnet: sched: protect chain template accesses with block lock (diff)
downloadlinux-dev-ed76f5edccc98fa66f2337f0b3b255d6e1a568b7.tar.xz
linux-dev-ed76f5edccc98fa66f2337f0b3b255d6e1a568b7.zip
net: sched: protect filter_chain list with filter_chain_lock mutex
Extend tcf_chain with new filter_chain_lock mutex. Always lock the chain when accessing filter_chain list, instead of relying on rtnl lock. Dereference filter_chain with tcf_chain_dereference() lockdep macro to verify that all users of chain_list have the lock taken. Rearrange tp insert/remove code in tc_new_tfilter/tc_del_tfilter to execute all necessary code while holding chain lock in order to prevent invalidation of chain_info structure by potential concurrent change. This also serializes calls to tcf_chain0_head_change(), which allows head change callbacks to rely on filter_chain_lock for synchronization instead of rtnl mutex. Signed-off-by: Vlad Buslov <vladbu@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc')
0 files changed, 0 insertions, 0 deletions