net: devlink: move port_type_netdev_checks() call to __devlink_port_type_set()
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_netdev_checks() call there. Signed-off-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
8573a04404
commit
45791e0d00
@ -9994,33 +9994,6 @@ void devlink_port_unregister(struct devlink_port *devlink_port)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devlink_port_unregister);
|
||||
|
||||
static void __devlink_port_type_set(struct devlink_port *devlink_port,
|
||||
enum devlink_port_type type,
|
||||
void *type_dev)
|
||||
{
|
||||
ASSERT_DEVLINK_PORT_REGISTERED(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) {
|
||||
case DEVLINK_PORT_TYPE_ETH:
|
||||
devlink_port->type_eth.netdev = type_dev;
|
||||
break;
|
||||
case DEVLINK_PORT_TYPE_IB:
|
||||
devlink_port->type_ib.ibdev = type_dev;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
spin_unlock_bh(&devlink_port->type_lock);
|
||||
devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW);
|
||||
}
|
||||
|
||||
static void devlink_port_type_netdev_checks(struct devlink_port *devlink_port,
|
||||
struct net_device *netdev)
|
||||
{
|
||||
@ -10058,6 +10031,38 @@ static void devlink_port_type_netdev_checks(struct devlink_port *devlink_port,
|
||||
}
|
||||
}
|
||||
|
||||
static void __devlink_port_type_set(struct devlink_port *devlink_port,
|
||||
enum devlink_port_type type,
|
||||
void *type_dev)
|
||||
{
|
||||
struct net_device *netdev = type_dev;
|
||||
|
||||
ASSERT_DEVLINK_PORT_REGISTERED(devlink_port);
|
||||
|
||||
if (type == DEVLINK_PORT_TYPE_NOTSET) {
|
||||
devlink_port_type_warn_schedule(devlink_port);
|
||||
} else {
|
||||
devlink_port_type_warn_cancel(devlink_port);
|
||||
if (type == DEVLINK_PORT_TYPE_ETH && netdev)
|
||||
devlink_port_type_netdev_checks(devlink_port, netdev);
|
||||
}
|
||||
|
||||
spin_lock_bh(&devlink_port->type_lock);
|
||||
devlink_port->type = type;
|
||||
switch (type) {
|
||||
case DEVLINK_PORT_TYPE_ETH:
|
||||
devlink_port->type_eth.netdev = netdev;
|
||||
break;
|
||||
case DEVLINK_PORT_TYPE_IB:
|
||||
devlink_port->type_ib.ibdev = type_dev;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
spin_unlock_bh(&devlink_port->type_lock);
|
||||
devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW);
|
||||
}
|
||||
|
||||
/**
|
||||
* devlink_port_type_eth_set - Set port type to Ethernet
|
||||
*
|
||||
@ -10067,9 +10072,7 @@ static void devlink_port_type_netdev_checks(struct devlink_port *devlink_port,
|
||||
void devlink_port_type_eth_set(struct devlink_port *devlink_port,
|
||||
struct net_device *netdev)
|
||||
{
|
||||
if (netdev)
|
||||
devlink_port_type_netdev_checks(devlink_port, netdev);
|
||||
else
|
||||
if (!netdev)
|
||||
dev_warn(devlink_port->devlink->dev,
|
||||
"devlink port type for port %d set to Ethernet without a software interface reference, device type not supported by the kernel?\n",
|
||||
devlink_port->index);
|
||||
|
Loading…
x
Reference in New Issue
Block a user