]> git.baikalelectronics.ru Git - kernel.git/commit
net: sched: conditionally obtain rtnl lock in cls hw offloads API
authorVlad Buslov <vladbu@mellanox.com>
Mon, 26 Aug 2019 13:45:02 +0000 (16:45 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 26 Aug 2019 21:17:43 +0000 (14:17 -0700)
commitcbfe5381a6a03c7199116f1eb8d7122ec9e87d71
tree8c80a516c7d1b042d59d766f2a89a0b442cd5126
parent88e2b3292b69b047bfdf0be4dc33cc9b824446bb
net: sched: conditionally obtain rtnl lock in cls hw offloads API

In order to remove dependency on rtnl lock from offloads code of
classifiers, take rtnl lock conditionally before executing driver
callbacks. Only obtain rtnl lock if block is bound to devices that require
it.

Block bind/unbind code is rtnl-locked and obtains block->cb_lock while
holding rtnl lock. Obtain locks in same order in tc_setup_cb_*() functions
to prevent deadlock.

Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_api.c