Commit 216ba9f4 authored by Jiri Pirko's avatar Jiri Pirko Committed by Jakub Kicinski
Browse files

devlink: move port_del() to devlink_port_ops



Move port_del() from devlink_ops into newly introduced devlink_port_ops.

Signed-off-by: default avatarJiri Pirko <jiri@nvidia.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 216aa67f
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -320,7 +320,6 @@ static const struct devlink_ops mlx5_devlink_ops = {
#endif
#ifdef CONFIG_MLX5_SF_MANAGER
	.port_new = mlx5_devlink_sf_port_new,
	.port_del = mlx5_devlink_sf_port_del,
#endif
	.flash_update = mlx5_devlink_flash_update,
	.info_get = mlx5_devlink_info_get,
+3 −0
Original line number Diff line number Diff line
@@ -145,6 +145,9 @@ struct devlink_port *mlx5_esw_offloads_devlink_port(struct mlx5_eswitch *esw, u1
}

static const struct devlink_port_ops mlx5_esw_dl_sf_port_ops = {
#ifdef CONFIG_MLX5_SF_MANAGER
	.port_del = mlx5_devlink_sf_port_del,
#endif
	.port_fn_hw_addr_get = mlx5_devlink_port_fn_hw_addr_get,
	.port_fn_hw_addr_set = mlx5_devlink_port_fn_hw_addr_set,
	.port_fn_roce_get = mlx5_devlink_port_fn_roce_get,
+5 −17
Original line number Diff line number Diff line
@@ -1447,23 +1447,6 @@ struct devlink_ops {
	int (*port_new)(struct devlink *devlink,
			const struct devlink_port_new_attrs *attrs,
			struct netlink_ext_ack *extack);
	/**
	 * port_del() - Delete a port function
	 * @devlink: Devlink instance
	 * @port: The devlink port
	 * @extack: extack for reporting error messages
	 *
	 * Devlink core will call this device driver function upon user request
	 * to delete a previously created port function
	 *
	 * Notes:
	 *	- On success, drivers must unregister the corresponding devlink
	 *	  port
	 *
	 * Return: 0 on success, negative value otherwise.
	 */
	int (*port_del)(struct devlink *devlink, struct devlink_port *port,
			struct netlink_ext_ack *extack);

	/**
	 * Rate control callbacks.
@@ -1560,6 +1543,9 @@ void devlink_free(struct devlink *devlink);
 * @port_unsplit: Callback used to unsplit the port group back into
 *		  a single port.
 * @port_type_set: Callback used to set a type of a port.
 * @port_del: Callback used to delete selected port along with related function.
 *	      Devlink core calls this upon user request to delete
 *	      a port previously created by devlink_ops->port_new().
 * @port_fn_hw_addr_get: Callback used to set port function's hardware address.
 *			 Should be used by device drivers to report
 *			 the hardware address of a function managed
@@ -1602,6 +1588,8 @@ struct devlink_port_ops {
			    struct netlink_ext_ack *extack);
	int (*port_type_set)(struct devlink_port *devlink_port,
			     enum devlink_port_type port_type);
	int (*port_del)(struct devlink *devlink, struct devlink_port *port,
			struct netlink_ext_ack *extack);
	int (*port_fn_hw_addr_get)(struct devlink_port *port, u8 *hw_addr,
				   int *hw_addr_len,
				   struct netlink_ext_ack *extack);
+3 −3
Original line number Diff line number Diff line
@@ -1348,7 +1348,7 @@ static int devlink_nl_cmd_port_new_doit(struct sk_buff *skb,
	struct devlink_port_new_attrs new_attrs = {};
	struct devlink *devlink = info->user_ptr[0];

	if (!devlink->ops->port_new || !devlink->ops->port_del)
	if (!devlink->ops->port_new)
		return -EOPNOTSUPP;

	if (!info->attrs[DEVLINK_ATTR_PORT_FLAVOUR] ||
@@ -1387,10 +1387,10 @@ static int devlink_nl_cmd_port_del_doit(struct sk_buff *skb,
	struct netlink_ext_ack *extack = info->extack;
	struct devlink *devlink = info->user_ptr[0];

	if (!devlink->ops->port_del)
	if (!devlink_port->ops->port_del)
		return -EOPNOTSUPP;

	return devlink->ops->port_del(devlink, devlink_port, extack);
	return devlink_port->ops->port_del(devlink, devlink_port, extack);
}

static int