]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
devlink: move port_split/unsplit() ops into devlink_port_ops
authorJiri Pirko <jiri@nvidia.com>
Fri, 26 May 2023 10:28:31 +0000 (12:28 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 30 May 2023 17:32:20 +0000 (10:32 -0700)
Move port_split/unsplit() from devlink_ops into newly introduced
devlink_port_ops.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/intel/ice/ice_devlink.c
drivers/net/ethernet/mellanox/mlxsw/core.c
drivers/net/ethernet/netronome/nfp/nfp_devlink.c
include/net/devlink.h
net/devlink/leftover.c

index 6661d12772a3c676aca43debee0b028db00548ff..80dc5445b50d45fa2f444221aebc18800e261c43 100644 (file)
@@ -1256,8 +1256,6 @@ static const struct devlink_ops ice_devlink_ops = {
                          BIT(DEVLINK_RELOAD_ACTION_FW_ACTIVATE),
        .reload_down = ice_devlink_reload_down,
        .reload_up = ice_devlink_reload_up,
-       .port_split = ice_devlink_port_split,
-       .port_unsplit = ice_devlink_port_unsplit,
        .eswitch_mode_get = ice_eswitch_mode_get,
        .eswitch_mode_set = ice_eswitch_mode_set,
        .info_get = ice_devlink_info_get,
@@ -1513,6 +1511,8 @@ ice_devlink_set_port_split_options(struct ice_pf *pf,
 }
 
 static const struct devlink_port_ops ice_devlink_port_ops = {
+       .port_split = ice_devlink_port_split,
+       .port_unsplit = ice_devlink_port_unsplit,
 };
 
 /**
index 605881b17cccc56724d5cdd23c7b1a8b7404f1c0..1ccf3b73ed7245701169e1acc55621e533387d79 100644 (file)
@@ -1723,8 +1723,6 @@ static const struct devlink_ops mlxsw_devlink_ops = {
                                  BIT(DEVLINK_RELOAD_ACTION_FW_ACTIVATE),
        .reload_down            = mlxsw_devlink_core_bus_device_reload_down,
        .reload_up              = mlxsw_devlink_core_bus_device_reload_up,
-       .port_split                     = mlxsw_devlink_port_split,
-       .port_unsplit                   = mlxsw_devlink_port_unsplit,
        .sb_pool_get                    = mlxsw_devlink_sb_pool_get,
        .sb_pool_set                    = mlxsw_devlink_sb_pool_set,
        .sb_port_pool_get               = mlxsw_devlink_sb_port_pool_get,
@@ -3117,6 +3115,8 @@ u64 mlxsw_core_res_get(struct mlxsw_core *mlxsw_core,
 EXPORT_SYMBOL(mlxsw_core_res_get);
 
 static const struct devlink_port_ops mlxsw_devlink_port_ops = {
+       .port_split                     = mlxsw_devlink_port_split,
+       .port_unsplit                   = mlxsw_devlink_port_unsplit,
 };
 
 static int __mlxsw_core_port_init(struct mlxsw_core *mlxsw_core, u16 local_port,
index 4e4296ecae7c786f630ecd3506207ea815fc3bd5..8c6954c58a8863b8466179b0a751a16a975484cc 100644 (file)
@@ -311,8 +311,6 @@ nfp_devlink_flash_update(struct devlink *devlink,
 }
 
 const struct devlink_ops nfp_devlink_ops = {
-       .port_split             = nfp_devlink_port_split,
-       .port_unsplit           = nfp_devlink_port_unsplit,
        .sb_pool_get            = nfp_devlink_sb_pool_get,
        .sb_pool_set            = nfp_devlink_sb_pool_set,
        .eswitch_mode_get       = nfp_devlink_eswitch_mode_get,
@@ -322,6 +320,8 @@ const struct devlink_ops nfp_devlink_ops = {
 };
 
 static const struct devlink_port_ops nfp_devlink_port_ops = {
+       .port_split             = nfp_devlink_port_split,
+       .port_unsplit           = nfp_devlink_port_unsplit,
 };
 
 int nfp_devlink_port_register(struct nfp_app *app, struct nfp_port *port)
index a1e230d24f0520d4039a70a29ba455deccf17596..fdcb2c55f1b5dc6b158a36ff92cf31a85456c3a4 100644 (file)
@@ -1276,10 +1276,6 @@ struct devlink_ops {
                         struct netlink_ext_ack *extack);
        int (*port_type_set)(struct devlink_port *devlink_port,
                             enum devlink_port_type port_type);
-       int (*port_split)(struct devlink *devlink, struct devlink_port *port,
-                         unsigned int count, struct netlink_ext_ack *extack);
-       int (*port_unsplit)(struct devlink *devlink, struct devlink_port *port,
-                           struct netlink_ext_ack *extack);
        int (*sb_pool_get)(struct devlink *devlink, unsigned int sb_index,
                           u16 pool_index,
                           struct devlink_sb_pool_info *pool_info);
@@ -1653,8 +1649,15 @@ void devlink_free(struct devlink *devlink);
 
 /**
  * struct devlink_port_ops - Port operations
+ * @port_split: Callback used to split the port into multiple ones.
+ * @port_unsplit: Callback used to unsplit the port group back into
+ *               a single port.
  */
 struct devlink_port_ops {
+       int (*port_split)(struct devlink *devlink, struct devlink_port *port,
+                         unsigned int count, struct netlink_ext_ack *extack);
+       int (*port_unsplit)(struct devlink *devlink, struct devlink_port *port,
+                           struct netlink_ext_ack *extack);
 };
 
 void devlink_port_init(struct devlink *devlink,
index 2295fa542dd8babf0fe83a4bad7db35b710f1cec..1ed95c76cf674ca529b92e93960a3be37ba228a9 100644 (file)
@@ -1320,7 +1320,7 @@ static int devlink_nl_cmd_port_split_doit(struct sk_buff *skb,
 
        if (GENL_REQ_ATTR_CHECK(info, DEVLINK_ATTR_PORT_SPLIT_COUNT))
                return -EINVAL;
-       if (!devlink->ops->port_split)
+       if (!devlink_port->ops->port_split)
                return -EOPNOTSUPP;
 
        count = nla_get_u32(info->attrs[DEVLINK_ATTR_PORT_SPLIT_COUNT]);
@@ -1339,8 +1339,8 @@ static int devlink_nl_cmd_port_split_doit(struct sk_buff *skb,
                return -EINVAL;
        }
 
-       return devlink->ops->port_split(devlink, devlink_port, count,
-                                       info->extack);
+       return devlink_port->ops->port_split(devlink, devlink_port, count,
+                                            info->extack);
 }
 
 static int devlink_nl_cmd_port_unsplit_doit(struct sk_buff *skb,
@@ -1349,9 +1349,9 @@ static int devlink_nl_cmd_port_unsplit_doit(struct sk_buff *skb,
        struct devlink_port *devlink_port = info->user_ptr[1];
        struct devlink *devlink = info->user_ptr[0];
 
-       if (!devlink->ops->port_unsplit)
+       if (!devlink_port->ops->port_unsplit)
                return -EOPNOTSUPP;
-       return devlink->ops->port_unsplit(devlink, devlink_port, info->extack);
+       return devlink_port->ops->port_unsplit(devlink, devlink_port, info->extack);
 }
 
 static int devlink_nl_cmd_port_new_doit(struct sk_buff *skb,