]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
net: devlink: select NET_DEVLINK from drivers
authorJiri Pirko <jiri@mellanox.com>
Sun, 24 Mar 2019 10:14:38 +0000 (11:14 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 24 Mar 2019 18:55:31 +0000 (14:55 -0400)
Some drivers are becoming more dependent on NET_DEVLINK being selected
in configuration. With upcoming compat functions, the behavior would be
wrong in case devlink was not compiled in. So make the drivers select
NET_DEVLINK and rely on the functions being there, not just stubs.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/Kconfig
drivers/net/ethernet/broadcom/Kconfig
drivers/net/ethernet/cavium/Kconfig
drivers/net/ethernet/mellanox/mlx4/Kconfig
drivers/net/ethernet/mellanox/mlx5/core/Kconfig
drivers/net/ethernet/mellanox/mlxsw/Kconfig
drivers/net/ethernet/netronome/Kconfig
include/net/devlink.h
net/Kconfig
net/dsa/Kconfig

index 7a96d168efc41dce1510fbac29522ce06851a8db..bc42f131f47c0874593c16e7284920e466259401 100644 (file)
@@ -505,6 +505,7 @@ source "drivers/net/hyperv/Kconfig"
 config NETDEVSIM
        tristate "Simulated networking device"
        depends on DEBUG_FS
+       select NET_DEVLINK
        help
          This driver is a developer testing tool and software model that can
          be used to test various control path networking APIs, especially
index 716bfbba59cf0052a3ff462b216f980b929c6c9e..461b2c0b2ed66b018eea343787c3f4fc0499c7c0 100644 (file)
@@ -196,6 +196,7 @@ config BNXT
        depends on PCI
        select FW_LOADER
        select LIBCRC32C
+       select NET_DEVLINK
        ---help---
          This driver supports Broadcom NetXtreme-C/E 10/25/40/50 gigabit
          Ethernet cards.  To compile this driver as a module, choose M here:
index 6650e2a5f171385036f761f008198724a2c99ba4..7612ab6b286dfd915604c7c50e9e2b970fe42b6f 100644 (file)
@@ -68,6 +68,7 @@ config LIQUIDIO
        imply PTP_1588_CLOCK
        select FW_LOADER
        select LIBCRC32C
+       select NET_DEVLINK
        ---help---
          This driver supports Cavium LiquidIO Intelligent Server Adapters
          based on CN66XX, CN68XX and CN23XX chips.
index ff8057ed97ee29ceb51b363e982878186e5d74d4..8491db57b0b0c28fb6db1ac58ce090652ddce9f5 100644 (file)
@@ -26,6 +26,7 @@ config MLX4_EN_DCB
 config MLX4_CORE
        tristate
        depends on PCI
+       select NET_DEVLINK
        default n
 
 config MLX4_DEBUG
index 6debffb8336b6805d54fb1b59a86580de730a148..9aca8086ee019eee25984afbcb4dae10512ec0ae 100644 (file)
@@ -5,6 +5,7 @@
 config MLX5_CORE
        tristate "Mellanox 5th generation network adapters (ConnectX series) core driver"
        depends on PCI
+       select NET_DEVLINK
        imply PTP_1588_CLOCK
        imply VXLAN
        default n
index 9c195dfed0313f126659496d1593dc4b9d7704ae..b6b3ff0fe17f5c4e3a2c3f1460e6da57da4b79d8 100644 (file)
@@ -4,6 +4,7 @@
 
 config MLXSW_CORE
        tristate "Mellanox Technologies Switch ASICs support"
+       select NET_DEVLINK
        ---help---
          This driver supports Mellanox Technologies Switch ASICs family.
 
index 549898d5d450e328fe9308a96cae27daf5e9340b..f0d0e09f60e2162f52ed285ad3e2aa7f6330dea7 100644 (file)
@@ -19,6 +19,7 @@ config NFP
        tristate "Netronome(R) NFP4000/NFP6000 NIC driver"
        depends on PCI && PCI_MSI
        depends on VXLAN || VXLAN=n
+       select NET_DEVLINK
        ---help---
          This driver supports the Netronome(R) NFP4000/NFP6000 based
          cards working as a advanced Ethernet NIC.  It works with both
index cb9b060033e1d660be0578d5b0fbdd865f63eca7..03fb16f4fb6c11a12523a8c3d1f2974041ee92a2 100644 (file)
@@ -549,17 +549,13 @@ static inline struct devlink *priv_to_devlink(void *priv)
 
 static inline struct devlink *netdev_to_devlink(struct net_device *dev)
 {
-#if IS_ENABLED(CONFIG_NET_DEVLINK)
        if (dev->netdev_ops->ndo_get_devlink)
                return dev->netdev_ops->ndo_get_devlink(dev);
-#endif
        return NULL;
 }
 
 struct ib_device;
 
-#if IS_ENABLED(CONFIG_NET_DEVLINK)
-
 struct devlink *devlink_alloc(const struct devlink_ops *ops, size_t priv_size);
 int devlink_register(struct devlink *devlink, struct device *dev);
 void devlink_unregister(struct devlink *devlink);
@@ -728,500 +724,14 @@ void
 devlink_health_reporter_state_update(struct devlink_health_reporter *reporter,
                                     enum devlink_health_reporter_state state);
 
+#if IS_ENABLED(CONFIG_NET_DEVLINK)
+
 void devlink_compat_running_version(struct net_device *dev,
                                    char *buf, size_t len);
 int devlink_compat_flash_update(struct net_device *dev, const char *file_name);
 
 #else
 
-static inline struct devlink *devlink_alloc(const struct devlink_ops *ops,
-                                           size_t priv_size)
-{
-       return kzalloc(sizeof(struct devlink) + priv_size, GFP_KERNEL);
-}
-
-static inline int devlink_register(struct devlink *devlink, struct device *dev)
-{
-       return 0;
-}
-
-static inline void devlink_unregister(struct devlink *devlink)
-{
-}
-
-static inline void devlink_params_publish(struct devlink *devlink)
-{
-}
-
-static inline void devlink_params_unpublish(struct devlink *devlink)
-{
-}
-
-static inline void devlink_free(struct devlink *devlink)
-{
-       kfree(devlink);
-}
-
-static inline int devlink_port_register(struct devlink *devlink,
-                                       struct devlink_port *devlink_port,
-                                       unsigned int port_index)
-{
-       return 0;
-}
-
-static inline void devlink_port_unregister(struct devlink_port *devlink_port)
-{
-}
-
-static inline void devlink_port_type_eth_set(struct devlink_port *devlink_port,
-                                            struct net_device *netdev)
-{
-}
-
-static inline void devlink_port_type_ib_set(struct devlink_port *devlink_port,
-                                           struct ib_device *ibdev)
-{
-}
-
-static inline void devlink_port_type_clear(struct devlink_port *devlink_port)
-{
-}
-
-static inline void devlink_port_attrs_set(struct devlink_port *devlink_port,
-                                         enum devlink_port_flavour flavour,
-                                         u32 port_number, bool split,
-                                         u32 split_subport_number)
-{
-}
-
-static inline int
-devlink_port_get_phys_port_name(struct devlink_port *devlink_port,
-                               char *name, size_t len)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int devlink_sb_register(struct devlink *devlink,
-                                     unsigned int sb_index, u32 size,
-                                     u16 ingress_pools_count,
-                                     u16 egress_pools_count,
-                                     u16 ingress_tc_count,
-                                     u16 egress_tc_count)
-{
-       return 0;
-}
-
-static inline void devlink_sb_unregister(struct devlink *devlink,
-                                        unsigned int sb_index)
-{
-}
-
-static inline int
-devlink_dpipe_table_register(struct devlink *devlink,
-                            const char *table_name,
-                            struct devlink_dpipe_table_ops *table_ops,
-                            void *priv, bool counter_control_extern)
-{
-       return 0;
-}
-
-static inline void devlink_dpipe_table_unregister(struct devlink *devlink,
-                                                 const char *table_name)
-{
-}
-
-static inline int devlink_dpipe_headers_register(struct devlink *devlink,
-                                                struct devlink_dpipe_headers *
-                                                dpipe_headers)
-{
-       return 0;
-}
-
-static inline void devlink_dpipe_headers_unregister(struct devlink *devlink)
-{
-}
-
-static inline bool devlink_dpipe_table_counter_enabled(struct devlink *devlink,
-                                                      const char *table_name)
-{
-       return false;
-}
-
-static inline int
-devlink_dpipe_entry_ctx_prepare(struct devlink_dpipe_dump_ctx *dump_ctx)
-{
-       return 0;
-}
-
-static inline int
-devlink_dpipe_entry_ctx_append(struct devlink_dpipe_dump_ctx *dump_ctx,
-                              struct devlink_dpipe_entry *entry)
-{
-       return 0;
-}
-
-static inline int
-devlink_dpipe_entry_ctx_close(struct devlink_dpipe_dump_ctx *dump_ctx)
-{
-       return 0;
-}
-
-static inline void
-devlink_dpipe_entry_clear(struct devlink_dpipe_entry *entry)
-{
-}
-
-static inline int
-devlink_dpipe_action_put(struct sk_buff *skb,
-                        struct devlink_dpipe_action *action)
-{
-       return 0;
-}
-
-static inline int
-devlink_dpipe_match_put(struct sk_buff *skb,
-                       struct devlink_dpipe_match *match)
-{
-       return 0;
-}
-
-static inline int
-devlink_resource_register(struct devlink *devlink,
-                         const char *resource_name,
-                         u64 resource_size,
-                         u64 resource_id,
-                         u64 parent_resource_id,
-                         const struct devlink_resource_size_params *size_params)
-{
-       return 0;
-}
-
-static inline void
-devlink_resources_unregister(struct devlink *devlink,
-                            struct devlink_resource *resource)
-{
-}
-
-static inline int
-devlink_resource_size_get(struct devlink *devlink, u64 resource_id,
-                         u64 *p_resource_size)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-devlink_dpipe_table_resource_set(struct devlink *devlink,
-                                const char *table_name, u64 resource_id,
-                                u64 resource_units)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline void
-devlink_resource_occ_get_register(struct devlink *devlink,
-                                 u64 resource_id,
-                                 devlink_resource_occ_get_t *occ_get,
-                                 void *occ_get_priv)
-{
-}
-
-static inline void
-devlink_resource_occ_get_unregister(struct devlink *devlink,
-                                   u64 resource_id)
-{
-}
-
-static inline int
-devlink_params_register(struct devlink *devlink,
-                       const struct devlink_param *params,
-                       size_t params_count)
-{
-       return 0;
-}
-
-static inline void
-devlink_params_unregister(struct devlink *devlink,
-                         const struct devlink_param *params,
-                         size_t params_count)
-{
-
-}
-
-static inline int
-devlink_port_params_register(struct devlink_port *devlink_port,
-                            const struct devlink_param *params,
-                            size_t params_count)
-{
-       return 0;
-}
-
-static inline void
-devlink_port_params_unregister(struct devlink_port *devlink_port,
-                              const struct devlink_param *params,
-                              size_t params_count)
-{
-}
-
-static inline int
-devlink_param_driverinit_value_get(struct devlink *devlink, u32 param_id,
-                                  union devlink_param_value *init_val)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-devlink_param_driverinit_value_set(struct devlink *devlink, u32 param_id,
-                                  union devlink_param_value init_val)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-devlink_port_param_driverinit_value_get(struct devlink_port *devlink_port,
-                                       u32 param_id,
-                                       union devlink_param_value *init_val)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-devlink_port_param_driverinit_value_set(struct devlink_port *devlink_port,
-                                       u32 param_id,
-                                       union devlink_param_value init_val)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline void
-devlink_param_value_changed(struct devlink *devlink, u32 param_id)
-{
-}
-
-static inline void
-devlink_port_param_value_changed(struct devlink_port *devlink_port,
-                                u32 param_id)
-{
-}
-
-static inline void
-devlink_param_value_str_fill(union devlink_param_value *dst_val,
-                            const char *src)
-{
-}
-
-static inline struct devlink_region *
-devlink_region_create(struct devlink *devlink,
-                     const char *region_name,
-                     u32 region_max_snapshots,
-                     u64 region_size)
-{
-       return NULL;
-}
-
-static inline void
-devlink_region_destroy(struct devlink_region *region)
-{
-}
-
-static inline u32
-devlink_region_shapshot_id_get(struct devlink *devlink)
-{
-       return 0;
-}
-
-static inline int
-devlink_region_snapshot_create(struct devlink_region *region, u64 data_len,
-                              u8 *data, u32 snapshot_id,
-                              devlink_snapshot_data_dest_t *data_destructor)
-{
-       return 0;
-}
-
-static inline int
-devlink_info_driver_name_put(struct devlink_info_req *req, const char *name)
-{
-       return 0;
-}
-
-static inline int
-devlink_info_serial_number_put(struct devlink_info_req *req, const char *sn)
-{
-       return 0;
-}
-
-static inline int
-devlink_info_version_fixed_put(struct devlink_info_req *req,
-                              const char *version_name,
-                              const char *version_value)
-{
-       return 0;
-}
-
-static inline int
-devlink_info_version_stored_put(struct devlink_info_req *req,
-                               const char *version_name,
-                               const char *version_value)
-{
-       return 0;
-}
-
-static inline int
-devlink_info_version_running_put(struct devlink_info_req *req,
-                                const char *version_name,
-                                const char *version_value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_obj_nest_start(struct devlink_fmsg *fmsg)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_obj_nest_end(struct devlink_fmsg *fmsg)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_pair_nest_start(struct devlink_fmsg *fmsg, const char *name)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_pair_nest_end(struct devlink_fmsg *fmsg)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_arr_pair_nest_start(struct devlink_fmsg *fmsg,
-                                const char *name)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_arr_pair_nest_end(struct devlink_fmsg *fmsg)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_bool_put(struct devlink_fmsg *fmsg, bool value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u8_put(struct devlink_fmsg *fmsg, u8 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u32_put(struct devlink_fmsg *fmsg, u32 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u64_put(struct devlink_fmsg *fmsg, u64 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_string_put(struct devlink_fmsg *fmsg, const char *value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_binary_put(struct devlink_fmsg *fmsg, const void *value,
-                       u16 value_len)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_bool_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                          bool value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u8_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                        u8 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u32_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                         u32 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u64_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                         u64 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_string_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                            const char *value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_binary_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                            const void *value, u16 value_len)
-{
-       return 0;
-}
-
-static inline struct devlink_health_reporter *
-devlink_health_reporter_create(struct devlink *devlink,
-                              const struct devlink_health_reporter_ops *ops,
-                              u64 graceful_period, bool auto_recover,
-                              void *priv)
-{
-       return NULL;
-}
-
-static inline void
-devlink_health_reporter_destroy(struct devlink_health_reporter *reporter)
-{
-}
-
-static inline void *
-devlink_health_reporter_priv(struct devlink_health_reporter *reporter)
-{
-       return NULL;
-}
-
-static inline int
-devlink_health_report(struct devlink_health_reporter *reporter,
-                     const char *msg, void *priv_ctx)
-{
-       return 0;
-}
-
-static inline void
-devlink_health_reporter_state_update(struct devlink_health_reporter *reporter,
-                                    enum devlink_health_reporter_state state)
-{
-}
-
 static inline void
 devlink_compat_running_version(struct net_device *dev, char *buf, size_t len)
 {
@@ -1232,6 +742,7 @@ devlink_compat_flash_update(struct net_device *dev, const char *file_name)
 {
        return -EOPNOTSUPP;
 }
+
 #endif
 
 #endif /* _NET_DEVLINK_H_ */
index 1efe1f9ee492ea55f1227f2449f03883d318e810..3e8fdd688329cbbfd06063452a10a71583b7d49e 100644 (file)
@@ -429,11 +429,8 @@ config NET_SOCK_MSG
          with the help of BPF programs.
 
 config NET_DEVLINK
-       bool "Network physical/parent device Netlink interface"
-       help
-         Network physical/parent device Netlink interface provides
-         infrastructure to support access to physical chip-wide config and
-         monitoring.
+       bool
+       default n
 
 config PAGE_POOL
        bool
index fab49132345f1e7a57c76e18f356e83578d69871..b695170795c2c800113983795f903466c609006d 100644 (file)
@@ -10,6 +10,7 @@ config NET_DSA
        depends on BRIDGE || BRIDGE=n
        select NET_SWITCHDEV
        select PHYLINK
+       select NET_DEVLINK
        ---help---
          Say Y if you want to enable support for the hardware switches supported
          by the Distributed Switch Architecture.