Message ID | 20190812170202.32314-1-vladbu@mellanox.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] net: devlink: remove redundant rtnl lock assert | expand |
On Mon, 12 Aug 2019 20:02:02 +0300, Vlad Buslov wrote: > 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> Looks good, applied.
diff --git a/net/core/devlink.c b/net/core/devlink.c index e8f0b891f000..e98e7bd9740b 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -6938,11 +6938,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;