aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/devlink.c
diff options
context:
space:
mode:
authorJiri Pirko <jiri@mellanox.com>2019-03-24 11:14:33 +0100
committerDavid S. Miller <davem@davemloft.net>2019-03-24 14:55:31 -0400
commit45b861120e0c2694cabf082c63b022465ac572bb (patch)
tree27ca12de04f592893947116998ce8cbf169cc3b1 /net/core/devlink.c
parentdsa: move devlink_port_attrs_set() call before register (diff)
downloadlinux-dev-45b861120e0c2694cabf082c63b022465ac572bb.tar.xz
linux-dev-45b861120e0c2694cabf082c63b022465ac572bb.zip
net: devlink: disallow port_attrs_set() to be called before register
Since the port attributes are static and cannot change during the port lifetime, WARN_ON if some driver calls it after registration. Also, no need to call notifications as it is noop anyway due to check of devlink_port->registered there. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/devlink.c')
-rw-r--r--net/core/devlink.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/core/devlink.c b/net/core/devlink.c
index 418efeafa79b..d78c8cea7c3d 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -5388,12 +5388,13 @@ void devlink_port_attrs_set(struct devlink_port *devlink_port,
{
struct devlink_port_attrs *attrs = &devlink_port->attrs;
+ if (WARN_ON(devlink_port->registered))
+ return;
attrs->set = true;
attrs->flavour = flavour;
attrs->port_number = port_number;
attrs->split = split;
attrs->split_subport_number = split_subport_number;
- devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW);
}
EXPORT_SYMBOL_GPL(devlink_port_attrs_set);