summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVlad Buslov <vladbu@mellanox.com>2019-08-12 20:02:02 +0300
committerJakub Kicinski <jakub.kicinski@netronome.com>2019-08-13 16:47:11 -0700
commit043b8413e8c0c0ffbf8be268eb73716e05a96064 (patch)
treecf3c3170c5569b88db9325521d523020c53f5790
parent708852dcac84d2b923f2e8c1327f6006f612416a (diff)
net: devlink: remove redundant rtnl lock assert
It is enough for caller of devlink_compat_switch_id_get() to hold the net device to guarantee that devlink port is not destroyed concurrently. Remove rtnl lock assertion and modify comment to warn user that they must hold either rtnl lock or reference to net device. This is necessary to accommodate future implementation of rtnl-unlocked TC offloads driver callbacks. Signed-off-by: Vlad Buslov <vladbu@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
-rw-r--r--net/core/devlink.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/net/core/devlink.c b/net/core/devlink.c
index e3a1ae44f93d..d3dbb904bf3b 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -6939,11 +6939,10 @@ int devlink_compat_switch_id_get(struct net_device *dev,
{
struct devlink_port *devlink_port;
- /* RTNL mutex is held here which ensures that devlink_port
- * instance cannot disappear in the middle. No need to take
+ /* Caller must hold RTNL mutex or reference to dev, which ensures that
+ * devlink_port instance cannot disappear in the middle. No need to take
* any devlink lock as only permanent values are accessed.
*/
- ASSERT_RTNL();
devlink_port = netdev_to_devlink_port(dev);
if (!devlink_port || !devlink_port->attrs.switch_port)
return -EOPNOTSUPP;