net: devlink: move port_type_warn_schedule() call to __devlink_port_type_set()
authorJiri Pirko <jiri@nvidia.com>
Wed, 2 Nov 2022 16:02:00 +0000 (17:02 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 4 Nov 2022 03:48:32 +0000 (20:48 -0700)
As __devlink_port_type_set() is going to be called directly from netdevice
notifier event handle in one of the follow-up patches, move the
port_type_warn_schedule() call there.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/devlink.c

index 868d04c2164f77bdea004b5b39453fd816608ba5..3ba3435e2cd57188e84907317287b58189922d87 100644 (file)
@@ -10000,7 +10000,11 @@ static void __devlink_port_type_set(struct devlink_port *devlink_port,
 {
        ASSERT_DEVLINK_PORT_REGISTERED(devlink_port);
 
-       devlink_port_type_warn_cancel(devlink_port);
+       if (type == DEVLINK_PORT_TYPE_NOTSET)
+               devlink_port_type_warn_schedule(devlink_port);
+       else
+               devlink_port_type_warn_cancel(devlink_port);
+
        spin_lock_bh(&devlink_port->type_lock);
        devlink_port->type = type;
        switch (type) {
@@ -10095,7 +10099,6 @@ EXPORT_SYMBOL_GPL(devlink_port_type_ib_set);
 void devlink_port_type_clear(struct devlink_port *devlink_port)
 {
        __devlink_port_type_set(devlink_port, DEVLINK_PORT_TYPE_NOTSET, NULL);
-       devlink_port_type_warn_schedule(devlink_port);
 }
 EXPORT_SYMBOL_GPL(devlink_port_type_clear);