Commit d7907a2b authored by Leon Romanovsky's avatar Leon Romanovsky Committed by David S. Miller
Browse files

devlink: Remove duplicated registration check



Both registered flag and devlink pointer are set at the same time
and indicate the same thing - devlink/devlink_port are ready. Instead
of checking ->registered use devlink pointer as an indication.

Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 35f69867
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -55,8 +55,7 @@ struct devlink {
			    * port, sb, dpipe, resource, params, region, traps and more.
			    */
	u8 reload_failed:1,
	   reload_enabled:1,
	   registered:1;
	   reload_enabled:1;
	char priv[0] __aligned(NETDEV_ALIGN);
};

@@ -158,7 +157,6 @@ struct devlink_port {
	struct list_head region_list;
	struct devlink *devlink;
	unsigned int index;
	bool registered;
	spinlock_t type_lock; /* Protects type and type_dev
			       * pointer consistency.
			       */
+10 −9
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ static void __devlink_net_set(struct devlink *devlink, struct net *net)

void devlink_net_set(struct devlink *devlink, struct net *net)
{
	if (WARN_ON(devlink->registered))
	if (WARN_ON(devlink->dev))
		return;
	__devlink_net_set(devlink, net);
}
@@ -1043,7 +1043,7 @@ static void devlink_port_notify(struct devlink_port *devlink_port,
	struct sk_buff *msg;
	int err;

	if (!devlink_port->registered)
	if (!devlink_port->devlink)
		return;

	WARN_ON(cmd != DEVLINK_CMD_PORT_NEW && cmd != DEVLINK_CMD_PORT_DEL);
@@ -8817,8 +8817,8 @@ EXPORT_SYMBOL_GPL(devlink_alloc);
 */
int devlink_register(struct devlink *devlink, struct device *dev)
{
	WARN_ON(devlink->dev);
	devlink->dev = dev;
	devlink->registered = true;
	mutex_lock(&devlink_mutex);
	list_add_tail(&devlink->list, &devlink_list);
	devlink_notify(devlink, DEVLINK_CMD_NEW);
@@ -8960,9 +8960,10 @@ int devlink_port_register(struct devlink *devlink,
		mutex_unlock(&devlink->lock);
		return -EEXIST;
	}

	WARN_ON(devlink_port->devlink);
	devlink_port->devlink = devlink;
	devlink_port->index = port_index;
	devlink_port->registered = true;
	spin_lock_init(&devlink_port->type_lock);
	INIT_LIST_HEAD(&devlink_port->reporter_list);
	mutex_init(&devlink_port->reporters_lock);
@@ -9001,7 +9002,7 @@ static void __devlink_port_type_set(struct devlink_port *devlink_port,
				    enum devlink_port_type type,
				    void *type_dev)
{
	if (WARN_ON(!devlink_port->registered))
	if (WARN_ON(!devlink_port->devlink))
		return;
	devlink_port_type_warn_cancel(devlink_port);
	spin_lock_bh(&devlink_port->type_lock);
@@ -9121,7 +9122,7 @@ void devlink_port_attrs_set(struct devlink_port *devlink_port,
{
	int ret;

	if (WARN_ON(devlink_port->registered))
	if (WARN_ON(devlink_port->devlink))
		return;
	devlink_port->attrs = *attrs;
	ret = __devlink_port_attrs_set(devlink_port, attrs->flavour);
@@ -9145,7 +9146,7 @@ void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u32 contro
	struct devlink_port_attrs *attrs = &devlink_port->attrs;
	int ret;

	if (WARN_ON(devlink_port->registered))
	if (WARN_ON(devlink_port->devlink))
		return;
	ret = __devlink_port_attrs_set(devlink_port,
				       DEVLINK_PORT_FLAVOUR_PCI_PF);
@@ -9172,7 +9173,7 @@ void devlink_port_attrs_pci_vf_set(struct devlink_port *devlink_port, u32 contro
	struct devlink_port_attrs *attrs = &devlink_port->attrs;
	int ret;

	if (WARN_ON(devlink_port->registered))
	if (WARN_ON(devlink_port->devlink))
		return;
	ret = __devlink_port_attrs_set(devlink_port,
				       DEVLINK_PORT_FLAVOUR_PCI_VF);
@@ -9200,7 +9201,7 @@ void devlink_port_attrs_pci_sf_set(struct devlink_port *devlink_port, u32 contro
	struct devlink_port_attrs *attrs = &devlink_port->attrs;
	int ret;

	if (WARN_ON(devlink_port->registered))
	if (WARN_ON(devlink_port->devlink))
		return;
	ret = __devlink_port_attrs_set(devlink_port,
				       DEVLINK_PORT_FLAVOUR_PCI_SF);